nsISHistoryListener

nsISHistoryListener defines the interface one can implement to receive
notifications about activities in session history and to be able to
cancel them.

A session history listener will be notified when pages are added, removed
and loaded from session history. It can prevent any action (except adding
a new session history entry) from happening by returning false from the
corresponding callback method.

A session history listener can be registered on a particular nsISHistory
instance via the nsISHistory::addSHistoryListener() method.

Methods

OnHistoryNewEntry(aNewURI)

Called when a new document is added to session history. New documents are
added to session history by docshell when new pages are loaded in a frame
or content area, for example via nsIWebNavigation::loadURI()

Parameters

aNewURI The URI of the document to be added to session history.

OnHistoryGoBack(aBackURI)

Called when navigating to a previous session history entry, for example
due to a nsIWebNavigation::goBack() call.

Parameters

aBackURI The URI of the session history entry being navigated to.

Returns

Whether the operation can proceed.

OnHistoryGoForward(aForwardURI)

Called when navigating to a next session history entry, for example
due to a nsIWebNavigation::goForward() call.

Parameters

aForwardURI The URI of the session history entry being navigated to.

Returns

Whether the operation can proceed.

OnHistoryReload(aReloadURI, aReloadFlags)

Called when the current document is reloaded, for example due to a
nsIWebNavigation::reload() call.

@see nsIWebNavigation

Parameters

aReloadURI The URI of the document to be reloaded.
aReloadFlags Flags that indicate how the document is to be refreshed. See constants on the nsIWebNavigation interface.

Returns

Whether the operation can proceed.

OnHistoryGotoIndex(aIndex, aGotoURI)

Called when navigating to a session history entry by index, for example,
when nsIWebNavigation::gotoIndex() is called.

Parameters

aIndex The index in session history of the entry to be loaded.
aGotoURI The URI of the session history entry to be loaded.

Returns

Whether the operation can proceed.

OnHistoryPurge(aNumEntries)

Called when entries are removed from session history. Entries can be
removed from session history for various reasons, for example to control
the memory usage of the browser, to prevent users from loading documents
from history, to erase evidence of prior page loads, etc.

To purge documents from session history call nsISHistory::PurgeHistory()

Parameters

aNumEntries The number of entries to be removed from session history.

Returns

Whether the operation can proceed.

OnHistoryReplaceEntry(aIndex)

Called when an entry is replaced in the session history. Entries are
replaced when navigating away from non-persistent history entries (such as
about pages) and when history.replaceState is called.

Parameters

aIndex The index in session history of the entry being replaced