summaryrefslogtreecommitdiffstats
path: root/toolkit/components/extensions/test/browser/browser_ext_webNavigation_eventpage.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /toolkit/components/extensions/test/browser/browser_ext_webNavigation_eventpage.js
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/extensions/test/browser/browser_ext_webNavigation_eventpage.js')
-rw-r--r--toolkit/components/extensions/test/browser/browser_ext_webNavigation_eventpage.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/toolkit/components/extensions/test/browser/browser_ext_webNavigation_eventpage.js b/toolkit/components/extensions/test/browser/browser_ext_webNavigation_eventpage.js
new file mode 100644
index 0000000000..d898cb96a4
--- /dev/null
+++ b/toolkit/components/extensions/test/browser/browser_ext_webNavigation_eventpage.js
@@ -0,0 +1,72 @@
+"use strict";
+
+add_task(async function webnav_test_eventpage() {
+ await SpecialPowers.pushPrefEnv({
+ set: [["extensions.eventPages.enabled", true]],
+ });
+
+ let extension = ExtensionTestUtils.loadExtension({
+ manifest: {
+ permissions: ["webNavigation", "*://mochi.test/*"],
+ background: { persistent: false },
+ },
+ background() {
+ const EVENTS = [
+ "onTabReplaced",
+ "onBeforeNavigate",
+ "onCommitted",
+ "onDOMContentLoaded",
+ "onCompleted",
+ "onErrorOccurred",
+ "onReferenceFragmentUpdated",
+ "onHistoryStateUpdated",
+ ];
+
+ for (let event of EVENTS) {
+ browser.webNavigation[event].addListener(() => {});
+ }
+ browser.test.sendMessage("ready");
+ },
+ });
+
+ // onTabReplaced is never persisted, it is an empty event handler.
+ const EVENTS = [
+ "onBeforeNavigate",
+ "onCommitted",
+ "onDOMContentLoaded",
+ "onCompleted",
+ "onErrorOccurred",
+ "onReferenceFragmentUpdated",
+ "onHistoryStateUpdated",
+ ];
+
+ await extension.startup();
+ await extension.awaitMessage("ready");
+ for (let event of EVENTS) {
+ assertPersistentListeners(extension, "webNavigation", event, {
+ primed: false,
+ });
+ }
+
+ await extension.terminateBackground();
+ for (let event of EVENTS) {
+ assertPersistentListeners(extension, "webNavigation", event, {
+ primed: true,
+ });
+ }
+
+ // wake up the background, we don't really care which event does it,
+ // we're just verifying the state after.
+ let newWin = await BrowserTestUtils.openNewBrowserWindow();
+ await extension.awaitMessage("ready");
+ for (let event of EVENTS) {
+ assertPersistentListeners(extension, "webNavigation", event, {
+ primed: false,
+ });
+ }
+
+ await BrowserTestUtils.closeWindow(newWin);
+
+ await extension.unload();
+ await SpecialPowers.popPrefEnv();
+});