Bug 1761445 - [remote] TabManager.getBrowsingContextById should not return closed browsing contexts. r=jdescottes,webdriver-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D225303
This commit is contained in:
@@ -231,15 +231,22 @@ class TabManagerClass {
|
||||
* @param {string} id
|
||||
* A browsing context unique id (created by getIdForBrowsingContext).
|
||||
* @returns {BrowsingContext=}
|
||||
* The browsing context found for this id, null if none was found.
|
||||
* The browsing context found for this id, null if none was found or
|
||||
* browsing context is discarded.
|
||||
*/
|
||||
getBrowsingContextById(id) {
|
||||
const browser = this.getBrowserById(id);
|
||||
let browsingContext;
|
||||
if (browser) {
|
||||
return browser.browsingContext;
|
||||
browsingContext = browser.browsingContext;
|
||||
} else {
|
||||
browsingContext = BrowsingContext.get(id);
|
||||
}
|
||||
|
||||
return BrowsingContext.get(id);
|
||||
if (!browsingContext || browsingContext.isDiscarded) {
|
||||
return null;
|
||||
}
|
||||
return browsingContext;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -144,6 +144,27 @@ add_task(async function test_getBrowsingContextById() {
|
||||
is(TabManager.getBrowsingContextById(childContextId), contexts[1]);
|
||||
});
|
||||
|
||||
add_task(async function test_getDiscardedBrowsingContextById() {
|
||||
const tab = await TabManager.addTab();
|
||||
const browser = tab.linkedBrowser;
|
||||
const browsingContext = browser.browsingContext;
|
||||
const contextId = TabManager.getIdForBrowsingContext(browsingContext);
|
||||
|
||||
is(
|
||||
TabManager.getBrowsingContextById(contextId),
|
||||
browsingContext,
|
||||
"Browsing context is accessible by its ID"
|
||||
);
|
||||
|
||||
gBrowser.removeTab(tab);
|
||||
|
||||
is(
|
||||
TabManager.getBrowsingContextById(contextId),
|
||||
null,
|
||||
"Browsing context is no longer accessible after the tab is removed"
|
||||
);
|
||||
});
|
||||
|
||||
add_task(async function test_getIdForBrowsingContext() {
|
||||
const browser = gBrowser.selectedBrowser;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user