diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /dom/events/test/browser_keyboard_event_init_key_event_enabled_in_contentscript.js | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/events/test/browser_keyboard_event_init_key_event_enabled_in_contentscript.js')
-rw-r--r-- | dom/events/test/browser_keyboard_event_init_key_event_enabled_in_contentscript.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/dom/events/test/browser_keyboard_event_init_key_event_enabled_in_contentscript.js b/dom/events/test/browser_keyboard_event_init_key_event_enabled_in_contentscript.js new file mode 100644 index 0000000000..e8d51edb3e --- /dev/null +++ b/dom/events/test/browser_keyboard_event_init_key_event_enabled_in_contentscript.js @@ -0,0 +1,80 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +async function installAndStartExtension() { + function contentScript() { + window.addEventListener( + "load", + () => { + document.documentElement.setAttribute( + "data-initKeyEvent-in-contentscript", + typeof window.KeyboardEvent.prototype.initKeyEvent + ); + }, + { capture: true, once: true } + ); + } + + let extension = ExtensionTestUtils.loadExtension({ + manifest: { + content_scripts: [ + { + js: ["content_script.js"], + matches: ["<all_urls>"], + run_at: "document_start", + }, + ], + }, + files: { + "content_script.js": contentScript, + }, + }); + + await extension.startup(); + + return extension; +} + +add_task(async function () { + await SpecialPowers.pushPrefEnv({ + set: [ + ["dom.keyboardevent.init_key_event.enabled", false], + ["dom.keyboardevent.init_key_event.enabled_in_addons", true], + ], + }); + + const extension = await installAndStartExtension(); + await BrowserTestUtils.withNewTab( + "http://example.com/browser/dom/events/test/file_keyboard_event_init_key_event_enabled_in_contentscript.html", + async browser => { + info("Waiting for the test result..."); + await SpecialPowers.spawn(browser, [], () => { + Assert.equal( + content.document.documentElement.getAttribute( + "data-initKeyEvent-before" + ), + "undefined", + "KeyboardEvent.initKeyEvent shouldn't be available in web-content" + ); + Assert.equal( + content.document.documentElement.getAttribute( + "data-initKeyEvent-in-contentscript" + ), + "function", + "KeyboardEvent.initKeyEvent should be available in contentscript" + ); + Assert.equal( + content.document.documentElement.getAttribute( + "data-initKeyEvent-after" + ), + "undefined", + "KeyboardEvent.initKeyEvent shouldn't be available in web-content even after contentscript accesses it" + ); + }); + } + ); + + await extension.unload(); +}); |