Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
"use strict";
/* import-globals-from helper-backward-compat.js */
Services.scriptloader.loadSubScript(
CHROME_URL_ROOT + "helper-backward-compat.js",
this
);
const EXTENSION_NAME = "DevTools compat test extension";
const TOOL_IDS = ["inspector", "webconsole", "jsdebugger", "netmonitor"];
// Check that an extension installed on the server can be inspected from the
// client.
addCompatTask(async function (config) {
const { addonId } = await runDevToolsServerCommand(
config,
"install-extension"
);
ok(addonId, `Installed the test extension on the server (${addonId})`);
const { document, tab, window } =
await openAboutDebuggingWithCompatServer(config);
await connectToRuntime(config.host, document);
await waitForRuntimePage(config.runtime.brandName, document);
info("Wait until the extension is listed as a debug target");
await waitFor(
() => findDebugTargetByText(EXTENSION_NAME, document),
"The extension should be listed in the debug targets"
);
const extensionPane = getDebugTargetPane("Temporary Extensions", document);
ok(
extensionPane.textContent.includes(EXTENSION_NAME),
"The extension is displayed in the Temporary Extensions pane"
);
const { devtoolsTab, devtoolsWindow } = await openAboutDevtoolsToolbox(
document,
tab,
window,
EXTENSION_NAME
);
const toolbox = getToolbox(devtoolsWindow);
for (const toolId of TOOL_IDS) {
info(`Select the ${toolId} panel`);
await toolbox.selectTool(toolId);
const iframe = toolbox.doc.getElementById(`toolbox-panel-iframe-${toolId}`);
ok(iframe, `The ${toolId} panel iframe exists`);
info("Wait for the panel to be displayed / non-empty");
await waitFor(
() => iframe.contentDocument.body?.textContent.trim(),
`The ${toolId} panel is not blank`
);
ok(
!iframe.contentDocument.querySelector(".app-error-panel"),
"AppErrorBoundary is not rendered in this panel"
);
}
ok(
!toolbox.doc.querySelector(".app-error-panel"),
"AppErrorBoundary is not rendered in the toolbox"
);
await closeAboutDevtoolsToolbox(document, devtoolsTab, window);
await runDevToolsServerCommand(config, "uninstall-extension", { addonId });
await removeTab(tab);
});