summaryrefslogtreecommitdiffstats
path: root/devtools/client/framework/browser-toolbox/test/browser_browser_toolbox_fission_inspector_webextension.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 /devtools/client/framework/browser-toolbox/test/browser_browser_toolbox_fission_inspector_webextension.js
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/framework/browser-toolbox/test/browser_browser_toolbox_fission_inspector_webextension.js')
-rw-r--r--devtools/client/framework/browser-toolbox/test/browser_browser_toolbox_fission_inspector_webextension.js94
1 files changed, 94 insertions, 0 deletions
diff --git a/devtools/client/framework/browser-toolbox/test/browser_browser_toolbox_fission_inspector_webextension.js b/devtools/client/framework/browser-toolbox/test/browser_browser_toolbox_fission_inspector_webextension.js
new file mode 100644
index 0000000000..4f8a2f7535
--- /dev/null
+++ b/devtools/client/framework/browser-toolbox/test/browser_browser_toolbox_fission_inspector_webextension.js
@@ -0,0 +1,94 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// There are shutdown issues for which multiple rejections are left uncaught.
+// See bug 1018184 for resolving these issues.
+const { PromiseTestUtils } = ChromeUtils.importESModule(
+ "resource://testing-common/PromiseTestUtils.sys.mjs"
+);
+PromiseTestUtils.allowMatchingRejectionsGlobally(/File closed/);
+
+Services.scriptloader.loadSubScript(
+ "chrome://mochitests/content/browser/devtools/client/inspector/test/shared-head.js",
+ this
+);
+
+// On debug test machine, it takes about 50s to run the test.
+requestLongerTimeout(4);
+
+// Test that expanding a browser element of a webextension in the browser toolbox works
+// as expected (See Bug 1696862).
+
+add_task(async function () {
+ const extension = ExtensionTestUtils.loadExtension({
+ // manifest_version: 2,
+ manifest: {
+ sidebar_action: {
+ default_title: "SideBarExtensionTest",
+ default_panel: "sidebar.html",
+ },
+ },
+ useAddonManager: "temporary",
+
+ files: {
+ "sidebar.html": `
+ <!DOCTYPE html>
+ <html class="sidebar-extension-test">
+ <head>
+ <meta charset="utf-8">
+ <script src="sidebar.js"></script>
+ </head>
+ <body>
+ <h1 id="sidebar-extension-h1">Sidebar Extension Test</h1>
+ </body>
+ </html>`,
+ "sidebar.js": function () {
+ window.onload = () => {
+ // eslint-disable-next-line no-undef
+ browser.test.sendMessage("sidebar-ready");
+ };
+ },
+ },
+ });
+ await extension.startup();
+ await extension.awaitMessage("sidebar-ready");
+
+ ok(true, "Extension sidebar is displayed");
+
+ // Forces the Browser Toolbox to open on the inspector by default
+ await pushPref("devtools.browsertoolbox.panel", "inspector");
+ // Enable Multiprocess Browser Toolbox
+ await pushPref("devtools.browsertoolbox.scope", "everything");
+ const ToolboxTask = await initBrowserToolboxTask();
+ await ToolboxTask.importFunctions({
+ getNodeFront,
+ getNodeFrontInFrames,
+ selectNode,
+ // selectNodeInFrames depends on selectNode, getNodeFront, getNodeFrontInFrames.
+ selectNodeInFrames,
+ });
+
+ const nodeId = await ToolboxTask.spawn(null, async () => {
+ /* global gToolbox */
+ const inspector = gToolbox.getPanel("inspector");
+
+ const nodeFront = await selectNodeInFrames(
+ [
+ "browser#sidebar",
+ "browser#webext-panels-browser",
+ "html.sidebar-extension-test h1",
+ ],
+ inspector
+ );
+ return nodeFront.id;
+ });
+
+ is(
+ nodeId,
+ "sidebar-extension-h1",
+ "The Browser Toolbox can inspect a node in the webextension sidebar document"
+ );
+
+ await ToolboxTask.destroy();
+ await extension.unload();
+});