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 --- .../browser_ext_browserAction_popup_port.js | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 browser/components/extensions/test/browser/browser_ext_browserAction_popup_port.js (limited to 'browser/components/extensions/test/browser/browser_ext_browserAction_popup_port.js') diff --git a/browser/components/extensions/test/browser/browser_ext_browserAction_popup_port.js b/browser/components/extensions/test/browser/browser_ext_browserAction_popup_port.js new file mode 100644 index 0000000000..415d69738d --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_browserAction_popup_port.js @@ -0,0 +1,56 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +let scriptPage = url => + `${url}`; + +// Tests that message ports still function correctly after a browserAction popup +// has been reparented. +add_task(async function test_browserActionPort() { + let extension = ExtensionTestUtils.loadExtension({ + manifest: { + browser_action: { + default_popup: "popup.html", + default_area: "navbar", + browser_style: true, + }, + }, + + background() { + new Promise(resolve => { + browser.runtime.onConnect.addListener(port => { + resolve( + Promise.all([ + new Promise(r => port.onMessage.addListener(r)), + new Promise(r => port.onDisconnect.addListener(r)), + ]) + ); + }); + }).then(([msg]) => { + browser.test.assertEq("Hallo.", msg, "Got expected message"); + browser.test.notifyPass("browserAction-popup-port"); + }); + }, + + files: { + "popup.html": scriptPage("popup.js"), + "popup.js"() { + let port = browser.runtime.connect(); + window.onload = () => { + setTimeout(() => { + port.postMessage("Hallo."); + window.close(); + }, 0); + }; + }, + }, + }); + + await extension.startup(); + + await clickBrowserAction(extension); + + await extension.awaitFinish("browserAction-popup-port"); + await extension.unload(); +}); -- cgit v1.2.3