diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /docshell/shistory/nsISHistoryListener.idl | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'docshell/shistory/nsISHistoryListener.idl')
-rw-r--r-- | docshell/shistory/nsISHistoryListener.idl | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/docshell/shistory/nsISHistoryListener.idl b/docshell/shistory/nsISHistoryListener.idl new file mode 100644 index 000000000..38552d60e --- /dev/null +++ b/docshell/shistory/nsISHistoryListener.idl @@ -0,0 +1,108 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsISupports.idl" + +interface nsIURI; + +/** + * 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. + */ +[scriptable, uuid(125c0833-746a-400e-9b89-d2d18545c08a)] +interface nsISHistoryListener : nsISupports +{ + /** + * 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() + * + * @param aNewURI The URI of the document to be added to session history. + * @param aOldIndex The index of the current history item before the operation. + */ + void OnHistoryNewEntry(in nsIURI aNewURI, in long aOldIndex); + + /** + * Called when navigating to a previous session history entry, for example + * due to a nsIWebNavigation::goBack() call. + * + * @param aBackURI The URI of the session history entry being navigated to. + * @return Whether the operation can proceed. + */ + boolean OnHistoryGoBack(in nsIURI aBackURI); + + /** + * Called when navigating to a next session history entry, for example + * due to a nsIWebNavigation::goForward() call. + * + * @param aForwardURI The URI of the session history entry being navigated to. + * @return Whether the operation can proceed. + */ + boolean OnHistoryGoForward(in nsIURI aForwardURI); + + /** + * Called when the current document is reloaded, for example due to a + * nsIWebNavigation::reload() call. + * + * @param aReloadURI The URI of the document to be reloaded. + * @param aReloadFlags Flags that indicate how the document is to be + * refreshed. See constants on the nsIWebNavigation + * interface. + * @return Whether the operation can proceed. + * + * @see nsIWebNavigation + */ + boolean OnHistoryReload(in nsIURI aReloadURI, in unsigned long aReloadFlags); + + /** + * Called when navigating to a session history entry by index, for example, + * when nsIWebNavigation::gotoIndex() is called. + * + * @param aIndex The index in session history of the entry to be loaded. + * @param aGotoURI The URI of the session history entry to be loaded. + * @return Whether the operation can proceed. + */ + boolean OnHistoryGotoIndex(in long aIndex, in nsIURI aGotoURI); + + /** + * 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() + * + * @param aNumEntries The number of entries to be removed from session history. + * @return Whether the operation can proceed. + */ + boolean OnHistoryPurge(in long aNumEntries); + + /** + * 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. + * + * @param aIndex The index in session history of the entry being + * replaced + */ + void OnHistoryReplaceEntry(in long aIndex); + + /** + * Called when nsISHistory::count has been updated. Unlike OnHistoryNewEntry + * and OnHistoryPurge which happen before the modifications are actually done + * and maybe cancellable, this function is called after these modifications. + */ + void OnLengthChange(in long aCount); +}; |