diff options
Diffstat (limited to 'remote/webdriver-bidi/modules/windowglobal-in-root/browsingContext.sys.mjs')
-rw-r--r-- | remote/webdriver-bidi/modules/windowglobal-in-root/browsingContext.sys.mjs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/remote/webdriver-bidi/modules/windowglobal-in-root/browsingContext.sys.mjs b/remote/webdriver-bidi/modules/windowglobal-in-root/browsingContext.sys.mjs new file mode 100644 index 0000000000..45cee66eb3 --- /dev/null +++ b/remote/webdriver-bidi/modules/windowglobal-in-root/browsingContext.sys.mjs @@ -0,0 +1,43 @@ +/* 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/. */ + +import { Module } from "chrome://remote/content/shared/messagehandler/Module.sys.mjs"; + +const lazy = {}; + +ChromeUtils.defineESModuleGetters(lazy, { + TabManager: "chrome://remote/content/shared/TabManager.sys.mjs", +}); + +class BrowsingContextModule extends Module { + destroy() {} + + interceptEvent(name, payload) { + if ( + name == "browsingContext.domContentLoaded" || + name == "browsingContext.load" + ) { + const browsingContext = payload.context; + if (!lazy.TabManager.isValidCanonicalBrowsingContext(browsingContext)) { + // Discard events for invalid browsing contexts. + return null; + } + + // Resolve browsing context to a Navigable id. + payload.context = + lazy.TabManager.getIdForBrowsingContext(browsingContext); + + // Resolve navigation id. + const navigation = + this.messageHandler.navigationManager.getNavigationForBrowsingContext( + browsingContext + ); + payload.navigation = navigation ? navigation.navigationId : null; + } + + return payload; + } +} + +export const browsingContext = BrowsingContextModule; |