From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- ...vent_init_key_event_enabled_in_contentscript.js | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 dom/events/test/browser_keyboard_event_init_key_event_enabled_in_contentscript.js (limited to 'dom/events/test/browser_keyboard_event_init_key_event_enabled_in_contentscript.js') 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: [""], + 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(); +}); -- cgit v1.2.3