/**
* Namespace: browser.webNavigation
* Generated from Mozilla sources. Do not manually edit!
*
* Use the browser.webNavigation
API to receive notifications about the status of navigation requests
* in-flight.
* Permissions: "webNavigation"
*
* Comments found in source JSON schema files:
* Copyright (c) 2012 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
import { Events } from "./events";
export namespace WebNavigation {
/**
* Cause of the navigation. The same transition types as defined in the history API are used.
* These are the same transition types as defined in the $(topic:transition_types)[history API] except with
* "start_page"
in place of "auto_toplevel"
(for backwards compatibility).
*/
type TransitionType =
| "link"
| "typed"
| "auto_bookmark"
| "auto_subframe"
| "manual_subframe"
| "generated"
| "start_page"
| "form_submit"
| "reload"
| "keyword"
| "keyword_generated";
type TransitionQualifier = "client_redirect" | "server_redirect" | "forward_back" | "from_address_bar";
interface EventUrlFilters {
url: Events.UrlFilter[];
}
/**
* Information about the frame to retrieve information about.
*/
interface GetFrameDetailsType {
/**
* The ID of the tab in which the frame is.
*/
tabId: number;
/**
* The ID of the process runs the renderer for this tab.
* Optional.
*/
processId?: number;
/**
* The ID of the frame in the given tab.
*/
frameId: number;
}
/**
* Information about the requested frame, null if the specified frame ID and/or tab ID are invalid.
*/
interface GetFrameCallbackDetailsType {
/**
* True if the last navigation in this frame was interrupted by an error, i.e. the onErrorOccurred event fired.
* Optional.
*/
errorOccurred?: boolean;
/**
* The URL currently associated with this frame, if the frame identified by the frameId existed at one point in the given
* tab. The fact that an URL is associated with a given frameId does not imply that the corresponding frame still exists.
*/
url: string;
/**
* The ID of the tab in which the frame is.
*/
tabId: number;
/**
* The ID of the frame. 0 indicates that this is the main frame; a positive value indicates the ID of a subframe.
*/
frameId: number;
/**
* ID of frame that wraps the frame. Set to -1 of no parent frame exists.
*/
parentFrameId: number;
}
/**
* Information about the tab to retrieve all frames from.
*/
interface GetAllFramesDetailsType {
/**
* The ID of the tab.
*/
tabId: number;
}
interface GetAllFramesCallbackDetailsItemType {
/**
* True if the last navigation in this frame was interrupted by an error, i.e. the onErrorOccurred event fired.
* Optional.
*/
errorOccurred?: boolean;
/**
* The ID of the tab in which the frame is.
*/
tabId: number;
/**
* The ID of the frame. 0 indicates that this is the main frame; a positive value indicates the ID of a subframe.
*/
frameId: number;
/**
* ID of frame that wraps the frame. Set to -1 of no parent frame exists.
*/
parentFrameId: number;
/**
* The URL currently associated with this frame.
*/
url: string;
}
interface OnBeforeNavigateDetailsType {
/**
* The ID of the tab in which the navigation is about to occur.
*/
tabId: number;
url: string;
/**
* 0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe.
* Frame IDs are unique for a given tab and process.
*/
frameId: number;
/**
* ID of frame that wraps the frame. Set to -1 of no parent frame exists.
*/
parentFrameId: number;
/**
* The time when the browser was about to start the navigation, in milliseconds since the epoch.
*/
timeStamp: number;
}
interface OnCommittedDetailsType {
/**
* The ID of the tab in which the navigation occurs.
*/
tabId: number;
url: string;
/**
* 0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe.
* Frame IDs are unique within a tab.
*/
frameId: number;
/**
* The time when the navigation was committed, in milliseconds since the epoch.
*/
timeStamp: number;
}
interface OnDOMContentLoadedDetailsType {
/**
* The ID of the tab in which the navigation occurs.
*/
tabId: number;
url: string;
/**
* 0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe.
* Frame IDs are unique within a tab.
*/
frameId: number;
/**
* The time when the page's DOM was fully constructed, in milliseconds since the epoch.
*/
timeStamp: number;
}
interface OnCompletedDetailsType {
/**
* The ID of the tab in which the navigation occurs.
*/
tabId: number;
url: string;
/**
* 0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe.
* Frame IDs are unique within a tab.
*/
frameId: number;
/**
* The time when the document finished loading, in milliseconds since the epoch.
*/
timeStamp: number;
}
interface OnErrorOccurredDetailsType {
/**
* The ID of the tab in which the navigation occurs.
*/
tabId: number;
url: string;
/**
* 0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe.
* Frame IDs are unique within a tab.
*/
frameId: number;
/**
* The time when the error occurred, in milliseconds since the epoch.
*/
timeStamp: number;
}
interface OnCreatedNavigationTargetDetailsType {
/**
* The ID of the tab in which the navigation is triggered.
*/
sourceTabId: number;
/**
* The ID of the process runs the renderer for the source tab.
*/
sourceProcessId: number;
/**
* The ID of the frame with sourceTabId in which the navigation is triggered. 0 indicates the main frame.
*/
sourceFrameId: number;
/**
* The URL to be opened in the new window.
*/
url: string;
/**
* The ID of the tab in which the url is opened
*/
tabId: number;
/**
* The time when the browser was about to create a new view, in milliseconds since the epoch.
*/
timeStamp: number;
}
interface OnReferenceFragmentUpdatedDetailsType {
/**
* The ID of the tab in which the navigation occurs.
*/
tabId: number;
url: string;
/**
* 0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe.
* Frame IDs are unique within a tab.
*/
frameId: number;
/**
* The time when the navigation was committed, in milliseconds since the epoch.
*/
timeStamp: number;
}
interface OnTabReplacedDetailsType {
/**
* The ID of the tab that was replaced.
*/
replacedTabId: number;
/**
* The ID of the tab that replaced the old tab.
*/
tabId: number;
/**
* The time when the replacement happened, in milliseconds since the epoch.
*/
timeStamp: number;
}
interface OnHistoryStateUpdatedDetailsType {
/**
* The ID of the tab in which the navigation occurs.
*/
tabId: number;
url: string;
/**
* 0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe.
* Frame IDs are unique within a tab.
*/
frameId: number;
/**
* The time when the navigation was committed, in milliseconds since the epoch.
*/
timeStamp: number;
}
/**
* Fired when a navigation is about to occur.
*/
interface onBeforeNavigateEvent extends Events.Event<(details: OnBeforeNavigateDetailsType) => void> {
/**
* Registers an event listener callback to an event.
*
* @param callback Called when an event occurs. The parameters of this function depend on the type of event.
* @param filters Optional. Conditions that the URL being navigated to must satisfy. The 'schemes' and 'ports' fields of
* UrlFilter are ignored for this event.
*/
addListener(callback: (details: OnBeforeNavigateDetailsType) => void, filters?: EventUrlFilters): void;
}
/**
* Fired when a navigation is committed. The document (and the resources it refers to, such as images and subframes)
* might still be downloading, but at least part of the document has been received from the server and the browser has
* decided to switch to the new document.
*/
interface onCommittedEvent extends Events.Event<(details: OnCommittedDetailsType) => void> {
/**
* Registers an event listener callback to an event.
*
* @param callback Called when an event occurs. The parameters of this function depend on the type of event.
* @param filters Optional. Conditions that the URL being navigated to must satisfy. The 'schemes' and 'ports' fields of
* UrlFilter are ignored for this event.
*/
addListener(callback: (details: OnCommittedDetailsType) => void, filters?: EventUrlFilters): void;
}
/**
* Fired when the page's DOM is fully constructed, but the referenced resources may not finish loading.
*/
interface onDOMContentLoadedEvent extends Events.Event<(details: OnDOMContentLoadedDetailsType) => void> {
/**
* Registers an event listener callback to an event.
*
* @param callback Called when an event occurs. The parameters of this function depend on the type of event.
* @param filters Optional. Conditions that the URL being navigated to must satisfy. The 'schemes' and 'ports' fields of
* UrlFilter are ignored for this event.
*/
addListener(callback: (details: OnDOMContentLoadedDetailsType) => void, filters?: EventUrlFilters): void;
}
/**
* Fired when a document, including the resources it refers to, is completely loaded and initialized.
*/
interface onCompletedEvent extends Events.Event<(details: OnCompletedDetailsType) => void> {
/**
* Registers an event listener callback to an event.
*
* @param callback Called when an event occurs. The parameters of this function depend on the type of event.
* @param filters Optional. Conditions that the URL being navigated to must satisfy. The 'schemes' and 'ports' fields of
* UrlFilter are ignored for this event.
*/
addListener(callback: (details: OnCompletedDetailsType) => void, filters?: EventUrlFilters): void;
}
/**
* Fired when an error occurs and the navigation is aborted. This can happen if either a network error occurred,
* or the user aborted the navigation.
*/
interface onErrorOccurredEvent extends Events.Event<(details: OnErrorOccurredDetailsType) => void> {
/**
* Registers an event listener callback to an event.
*
* @param callback Called when an event occurs. The parameters of this function depend on the type of event.
* @param filters Optional. Conditions that the URL being navigated to must satisfy. The 'schemes' and 'ports' fields of
* UrlFilter are ignored for this event.
*/
addListener(callback: (details: OnErrorOccurredDetailsType) => void, filters?: EventUrlFilters): void;
}
/**
* Fired when a new window, or a new tab in an existing window, is created to host a navigation.
*/
interface onCreatedNavigationTargetEvent
extends Events.Event<(details: OnCreatedNavigationTargetDetailsType) => void> {
/**
* Registers an event listener callback to an event.
*
* @param callback Called when an event occurs. The parameters of this function depend on the type of event.
* @param filters Optional. Conditions that the URL being navigated to must satisfy. The 'schemes' and 'ports' fields of
* UrlFilter are ignored for this event.
*/
addListener(callback: (details: OnCreatedNavigationTargetDetailsType) => void, filters?: EventUrlFilters): void;
}
/**
* Fired when the reference fragment of a frame was updated. All future events for that frame will use the updated URL.
*/
interface onReferenceFragmentUpdatedEvent
extends Events.Event<(details: OnReferenceFragmentUpdatedDetailsType) => void> {
/**
* Registers an event listener callback to an event.
*
* @param callback Called when an event occurs. The parameters of this function depend on the type of event.
* @param filters Optional. Conditions that the URL being navigated to must satisfy. The 'schemes' and 'ports' fields of
* UrlFilter are ignored for this event.
*/
addListener(
callback: (details: OnReferenceFragmentUpdatedDetailsType) => void,
filters?: EventUrlFilters
): void;
}
/**
* Fired when the frame's history was updated to a new URL. All future events for that frame will use the updated URL.
*/
interface onHistoryStateUpdatedEvent extends Events.Event<(details: OnHistoryStateUpdatedDetailsType) => void> {
/**
* Registers an event listener callback to an event.
*
* @param callback Called when an event occurs. The parameters of this function depend on the type of event.
* @param filters Optional. Conditions that the URL being navigated to must satisfy. The 'schemes' and 'ports' fields of
* UrlFilter are ignored for this event.
*/
addListener(callback: (details: OnHistoryStateUpdatedDetailsType) => void, filters?: EventUrlFilters): void;
}
interface Static {
/**
* Retrieves information about the given frame. A frame refers to an <iframe> or a <frame> of a web page and is
* identified by a tab ID and a frame ID.
*
* @param details Information about the frame to retrieve information about.
*/
getFrame(details: GetFrameDetailsType): Promise;
/**
* Retrieves information about all frames of a given tab.
*
* @param details Information about the tab to retrieve all frames from.
*/
getAllFrames(details: GetAllFramesDetailsType): Promise;
/**
* Fired when a navigation is about to occur.
*/
onBeforeNavigate: onBeforeNavigateEvent;
/**
* Fired when a navigation is committed. The document (and the resources it refers to, such as images and subframes)
* might still be downloading, but at least part of the document has been received from the server and the browser has
* decided to switch to the new document.
*/
onCommitted: onCommittedEvent;
/**
* Fired when the page's DOM is fully constructed, but the referenced resources may not finish loading.
*/
onDOMContentLoaded: onDOMContentLoadedEvent;
/**
* Fired when a document, including the resources it refers to, is completely loaded and initialized.
*/
onCompleted: onCompletedEvent;
/**
* Fired when an error occurs and the navigation is aborted. This can happen if either a network error occurred,
* or the user aborted the navigation.
*/
onErrorOccurred: onErrorOccurredEvent;
/**
* Fired when a new window, or a new tab in an existing window, is created to host a navigation.
*/
onCreatedNavigationTarget: onCreatedNavigationTargetEvent;
/**
* Fired when the reference fragment of a frame was updated. All future events for that frame will use the updated URL.
*/
onReferenceFragmentUpdated: onReferenceFragmentUpdatedEvent;
/**
* Fired when the contents of the tab is replaced by a different (usually previously pre-rendered) tab.
*
* @param details
*/
onTabReplaced: Events.Event<(details: OnTabReplacedDetailsType) => void>;
/**
* Fired when the frame's history was updated to a new URL. All future events for that frame will use the updated URL.
*/
onHistoryStateUpdated: onHistoryStateUpdatedEvent;
}
}