/* 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"

webidl BrowsingContext;
interface nsIURI;

[scriptable, uuid(5cc10dac-cab3-41dd-b4ce-55e27c43cc40)]
interface extIWebNavigation : nsISupports
{
  void onDocumentChange(in BrowsingContext bc,
                        in jsval transitionData,
                        in nsIURI location);

  void onHistoryChange(in BrowsingContext bc,
                       in jsval transitionData,
                       in nsIURI location,
                       in boolean isHistoryStateUpdated,
                       in boolean isReferenceFragmentUpdated);

  void onStateChange(in BrowsingContext bc,
                     in nsIURI requestURI,
                     in nsresult status,
                     in unsigned long stateFlags);

  void onCreatedNavigationTarget(in BrowsingContext bc,
                                 in BrowsingContext sourceBC,
                                 in ACString url);

  void onDOMContentLoaded(in BrowsingContext bc,
                          in nsIURI documentURI);
};
