Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'win' && socketprocess_networking && fission
- Manifest: toolkit/components/extensions/test/xpcshell/xpcshell-remote.toml includes toolkit/components/extensions/test/xpcshell/xpcshell-common.toml
- Manifest: toolkit/components/extensions/test/xpcshell/xpcshell.toml includes toolkit/components/extensions/test/xpcshell/xpcshell-common.toml
"use strict";
add_task(async function test_missing_background_file() {
let extension = ExtensionTestUtils.loadExtension({
// If we somehow fail to make progress, then we should notice that.
delayedStartup: false,
manifest: {
background: { page: "non_existing_background_page.html" },
},
files: {
"tab.html": `<script src="tab.js"></script>`,
"tab.js": async () => {
browser.test.assertEq(
browser.extension.getBackgroundPage(),
null,
"extension.getBackgroundPage() is null"
);
browser.test.assertEq(
await browser.runtime.getBackgroundPage(),
null,
"runtime.getBackgroundPage() is null"
);
browser.test.sendMessage("done");
},
},
});
info("Waiting for extension to start up");
await extension.startup();
if (WebExtensionPolicy.useRemoteWebExtensions) {
// The current implementation detects the background load, because the
// DOMContentLoaded event is fired right before the load navigates to an
// error page.
equal(extension.extension.backgroundState, "running", "backgroundState");
} else {
equal(extension.extension.backgroundState, "stopped", "backgroundState");
}
let contentPage = await ExtensionTestUtils.loadContentPage(
);
await extension.awaitMessage("done");
await contentPage.close();
equal(
extension.extension.backgroundState,
// Should ideally be "stopped", but see above.
WebExtensionPolicy.useRemoteWebExtensions ? "running" : "stopped",
"backgroundState not changed"
);
await extension.unload();
});