webNavigation.getAllFrames()
Given a tab ID, retrieves information about all the frames it contains.
This is an asynchronous function that returns a Promise.
Syntax
let gettingFrames = browser.webNavigation.getAllFrames(
details // object
)
Parameters
Return value
A Promise that will be fulfilled with an array of objects, each of which has the following properties:
errorOccurred-
boolean. True if the last navigation in this frame was interrupted by an error, i.e. theonErrorOccurredevent fired. processIdOptional Deprecated-
integer. This value is not set in modern browsers. When it was set, it represented the ID of the process running the renderer for this tab. frameId-
integer. The ID of the frame. If this is the main frame, thenframeIdis zero. parentFrameId-
integer. ID of this frame's parent. This is -1 if there is no parent frame: that is, if this frame is the top-level browsing context in the tab. url-
string. The URL currently associated with this frame.
If the tab is discarded, the promise will instead resolve with a null value. If the specified tab could not be found, or some other error occurs, the promise will be rejected with an error message.
Browser compatibility
| desktop | mobile | ||||||
|---|---|---|---|---|---|---|---|
getAllFrames | |||||||
Examples
This code logs the URLs of all frames in the active tab, when the user clicks a browser action:
function logFrameInfo(framesInfo) {
for (const frameInfo of framesInfo) {
console.log(frameInfo);
}
}
function onError(error) {
console.error(`Error: ${error}`);
}
function logAllFrames(tabs) {
browser.webNavigation
.getAllFrames({
tabId: tabs[0].id,
})
.then(logFrameInfo, onError);
}
browser.browserAction.onClicked.addListener(() => {
browser.tabs
.query({
currentWindow: true,
active: true,
})
.then(logAllFrames, onError);
});
Note: This API is based on Chromium's chrome.webNavigation API. This documentation is derived from web_navigation.json in the Chromium code.