summaryrefslogtreecommitdiffstats
path: root/remote/webdriver-bidi/modules/windowglobal-in-root/script.sys.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'remote/webdriver-bidi/modules/windowglobal-in-root/script.sys.mjs')
-rw-r--r--remote/webdriver-bidi/modules/windowglobal-in-root/script.sys.mjs37
1 files changed, 37 insertions, 0 deletions
diff --git a/remote/webdriver-bidi/modules/windowglobal-in-root/script.sys.mjs b/remote/webdriver-bidi/modules/windowglobal-in-root/script.sys.mjs
new file mode 100644
index 0000000000..30af29dd21
--- /dev/null
+++ b/remote/webdriver-bidi/modules/windowglobal-in-root/script.sys.mjs
@@ -0,0 +1,37 @@
+/* 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, {
+ processExtraData:
+ "chrome://remote/content/webdriver-bidi/modules/Intercept.sys.mjs",
+ TabManager: "chrome://remote/content/shared/TabManager.sys.mjs",
+});
+
+class ScriptModule extends Module {
+ destroy() {}
+
+ interceptEvent(name, payload) {
+ if (name == "script.message") {
+ const browsingContext = payload.source.context;
+ if (!lazy.TabManager.isValidCanonicalBrowsingContext(browsingContext)) {
+ // Discard events for invalid browsing contexts.
+ return null;
+ }
+
+ // Resolve browsing context to a Navigable id.
+ payload.source.context =
+ lazy.TabManager.getIdForBrowsingContext(browsingContext);
+
+ payload = lazy.processExtraData(this.messageHandler.sessionId, payload);
+ }
+
+ return payload;
+ }
+}
+
+export const script = ScriptModule;