forked from mirrors/gecko-dev
77 lines
2.1 KiB
JavaScript
77 lines
2.1 KiB
JavaScript
"use strict";
|
|
|
|
add_task(async function test_theme_incognito_not_allowed() {
|
|
let windowExtension = ExtensionTestUtils.loadExtension({
|
|
incognitoOverride: "spanning",
|
|
async background() {
|
|
const theme = {
|
|
colors: {
|
|
frame: "black",
|
|
tab_background_text: "black",
|
|
},
|
|
};
|
|
let window = await browser.windows.create({ incognito: true });
|
|
browser.test.onMessage.addListener(async message => {
|
|
if (message == "update") {
|
|
browser.theme.update(window.id, theme);
|
|
return;
|
|
}
|
|
await browser.windows.remove(window.id);
|
|
browser.test.sendMessage("done");
|
|
});
|
|
browser.test.sendMessage("ready", window.id);
|
|
},
|
|
manifest: {
|
|
permissions: ["theme"],
|
|
},
|
|
});
|
|
await windowExtension.startup();
|
|
let wId = await windowExtension.awaitMessage("ready");
|
|
|
|
async function background(windowId) {
|
|
const theme = {
|
|
colors: {
|
|
frame: "black",
|
|
tab_background_text: "black",
|
|
},
|
|
};
|
|
|
|
browser.theme.onUpdated.addListener(info => {
|
|
browser.test.log("got theme onChanged");
|
|
browser.test.fail("theme");
|
|
});
|
|
await browser.test.assertRejects(
|
|
browser.theme.getCurrent(windowId),
|
|
/Invalid window ID/,
|
|
"API should reject getting window theme"
|
|
);
|
|
await browser.test.assertRejects(
|
|
browser.theme.update(windowId, theme),
|
|
/Invalid window ID/,
|
|
"API should reject updating theme"
|
|
);
|
|
await browser.test.assertRejects(
|
|
browser.theme.reset(windowId),
|
|
/Invalid window ID/,
|
|
"API should reject reseting theme on window"
|
|
);
|
|
|
|
browser.test.sendMessage("start");
|
|
}
|
|
|
|
let extension = ExtensionTestUtils.loadExtension({
|
|
background: `(${background})(${wId})`,
|
|
manifest: {
|
|
permissions: ["theme"],
|
|
},
|
|
});
|
|
|
|
await extension.startup();
|
|
await extension.awaitMessage("start");
|
|
windowExtension.sendMessage("update");
|
|
|
|
windowExtension.sendMessage("close");
|
|
await windowExtension.awaitMessage("done");
|
|
await windowExtension.unload();
|
|
await extension.unload();
|
|
});
|