/* 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/. * * The origin of this IDL file is * https://html.spec.whatwg.org/multipage/nav-history-apis.html#navigation-interface */ [Func="Navigation::IsAPIEnabled", Exposed=Window] interface Navigation : EventTarget { [UseCounter] sequence entries(); readonly attribute NavigationHistoryEntry? currentEntry; [Throws, UseCounter] undefined updateCurrentEntry(NavigationUpdateCurrentEntryOptions options); readonly attribute NavigationTransition? transition; readonly attribute NavigationActivation? activation; readonly attribute boolean canGoBack; readonly attribute boolean canGoForward; [UseCounter] NavigationResult navigate(USVString url, optional NavigationNavigateOptions options = {}); [UseCounter] NavigationResult reload(optional NavigationReloadOptions options = {}); [UseCounter] NavigationResult traverseTo(DOMString key, optional NavigationOptions options = {}); [UseCounter] NavigationResult back(optional NavigationOptions options = {}); [UseCounter] NavigationResult forward(optional NavigationOptions options = {}); attribute EventHandler onnavigate; attribute EventHandler onnavigatesuccess; attribute EventHandler onnavigateerror; attribute EventHandler oncurrententrychange; }; dictionary NavigationUpdateCurrentEntryOptions { required any state; }; dictionary NavigationOptions { any info; }; dictionary NavigationNavigateOptions : NavigationOptions { any state; NavigationHistoryBehavior history = "auto"; }; dictionary NavigationReloadOptions : NavigationOptions { any state; }; dictionary NavigationResult { Promise committed; Promise finished; }; enum NavigationHistoryBehavior { "auto", "push", "replace" }; // https://html.spec.whatwg.org/multipage/nav-history-apis.html#navigationtype enum NavigationType { "push", "replace", "reload", "traverse" };