| /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
| * |
| * ***** BEGIN LICENSE BLOCK ***** |
| * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
| * |
| * The contents of this file are subject to the Mozilla Public License Version |
| * 1.1 (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * http://www.mozilla.org/MPL/ |
| * |
| * Software distributed under the License is distributed on an "AS IS" basis, |
| * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
| * for the specific language governing rights and limitations under the |
| * License. |
| * |
| * The Original Code is the Mozilla browser. |
| * |
| * The Initial Developer of the Original Code is |
| * Netscape Communications, Inc. |
| * Portions created by the Initial Developer are Copyright (C) 1999 |
| * the Initial Developer. All Rights Reserved. |
| * |
| * Contributor(s): |
| * |
| * Alternatively, the contents of this file may be used under the terms of |
| * either of the GNU General Public License Version 2 or later (the "GPL"), |
| * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
| * in which case the provisions of the GPL or the LGPL are applicable instead |
| * of those above. If you wish to allow use of your version of this file only |
| * under the terms of either the GPL or the LGPL, and not to allow others to |
| * use your version of this file under the terms of the MPL, indicate your |
| * decision by deleting the provisions above and replace them with the notice |
| * and other provisions required by the GPL or the LGPL. If you do not delete |
| * the provisions above, a recipient may use your version of this file under |
| * the terms of any one of the MPL, the GPL or the LGPL. |
| * |
| * ***** END LICENSE BLOCK ***** */ |
| |
| #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. |
| * |
| * @status FROZEN |
| */ |
| [scriptable, uuid(3b07f591-e8e1-11d4-9882-00c04fa02f40)] |
| 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. |
| */ |
| void OnHistoryNewEntry(in nsIURI aNewURI); |
| |
| /** |
| * 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); |
| }; |