mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
Bug 1455040 - Enable tab hiding API by default r=mixedpuppy
MozReview-Commit-ID: HtzpV7bySeY --HG-- extra : rebase_source : e72a09827a7bf065d5b380e67d34613e3b93dfa7
This commit is contained in:
parent
fd51c12acf
commit
4f2d99cc85
@ -7,34 +7,6 @@ ChromeUtils.defineModuleGetter(this, "TabStateFlusher",
|
||||
const {Utils} = ChromeUtils.import("resource://gre/modules/sessionstore/Utils.jsm", {});
|
||||
const triggeringPrincipal_base64 = Utils.SERIALIZED_SYSTEMPRINCIPAL;
|
||||
|
||||
// Ensure the pref prevents API use when the extension has the tabHide permission.
|
||||
add_task(async function test_pref_disabled() {
|
||||
async function background() {
|
||||
let tabs = await browser.tabs.query({hidden: false});
|
||||
let ids = tabs.map(tab => tab.id);
|
||||
|
||||
await browser.test.assertRejects(
|
||||
browser.tabs.hide(ids),
|
||||
/tabs.hide is currently experimental/,
|
||||
"Got the expected error when pref not enabled"
|
||||
).catch(err => {
|
||||
browser.test.notifyFail("pref-test");
|
||||
throw err;
|
||||
});
|
||||
|
||||
browser.test.notifyPass("pref-test");
|
||||
}
|
||||
|
||||
let extdata = {
|
||||
manifest: {permissions: ["tabs", "tabHide"]},
|
||||
background,
|
||||
};
|
||||
let extension = ExtensionTestUtils.loadExtension(extdata);
|
||||
await extension.startup();
|
||||
await extension.awaitFinish("pref-test");
|
||||
await extension.unload();
|
||||
});
|
||||
|
||||
async function doorhangerTest(testFn) {
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [["extensions.webextensions.tabhide.enabled", true]],
|
||||
@ -148,10 +120,6 @@ add_task(function test_doorhanger_disable() {
|
||||
});
|
||||
|
||||
add_task(async function test_tabs_showhide() {
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [["extensions.webextensions.tabhide.enabled", true]],
|
||||
});
|
||||
|
||||
async function background() {
|
||||
browser.test.onMessage.addListener(async (msg, data) => {
|
||||
switch (msg) {
|
||||
@ -294,10 +262,6 @@ add_task(async function test_tabs_showhide() {
|
||||
// shown when a tabHide extension is shutdown. We additionally test the
|
||||
// tabs.onUpdated listener gets called with hidden state changes.
|
||||
add_task(async function test_tabs_shutdown() {
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [["extensions.webextensions.tabhide.enabled", true]],
|
||||
});
|
||||
|
||||
let tabs = [
|
||||
await BrowserTestUtils.openNewForegroundTab(gBrowser, "http://example.com/", true, true),
|
||||
await BrowserTestUtils.openNewForegroundTab(gBrowser, "http://mochi.test:8888/", true, true),
|
||||
@ -343,3 +307,37 @@ add_task(async function test_tabs_shutdown() {
|
||||
BrowserTestUtils.removeTab(tabs[0]);
|
||||
BrowserTestUtils.removeTab(tabs[1]);
|
||||
});
|
||||
|
||||
// Ensure the pref prevents API use when the extension has the tabHide permission.
|
||||
add_task(async function test_pref_disabled() {
|
||||
// This should run last since SpecialPowers.pushPrefEnv won't cleanup until
|
||||
// this file finishes executing.
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [["extensions.webextensions.tabhide.enabled", false]],
|
||||
});
|
||||
|
||||
async function background() {
|
||||
let tabs = await browser.tabs.query({hidden: false});
|
||||
let ids = tabs.map(tab => tab.id);
|
||||
|
||||
await browser.test.assertRejects(
|
||||
browser.tabs.hide(ids),
|
||||
/tabs.hide is currently experimental/,
|
||||
"Got the expected error when pref not enabled"
|
||||
).catch(err => {
|
||||
browser.test.notifyFail("pref-test");
|
||||
throw err;
|
||||
});
|
||||
|
||||
browser.test.notifyPass("pref-test");
|
||||
}
|
||||
|
||||
let extdata = {
|
||||
manifest: {permissions: ["tabs", "tabHide"]},
|
||||
background,
|
||||
};
|
||||
let extension = ExtensionTestUtils.loadExtension(extdata);
|
||||
await extension.startup();
|
||||
await extension.awaitFinish("pref-test");
|
||||
await extension.unload();
|
||||
});
|
||||
|
@ -61,10 +61,6 @@ function getExtension() {
|
||||
// shown when a tabHide extension is shutdown. We additionally test the
|
||||
// tabs.onUpdated listener gets called with hidden state changes.
|
||||
add_task(async function test_tabs_update() {
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [["extensions.webextensions.tabhide.enabled", true]],
|
||||
});
|
||||
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, "http://example.com/");
|
||||
await BrowserTestUtils.switchTab(gBrowser, gBrowser.tabs[0]);
|
||||
|
||||
@ -116,10 +112,6 @@ add_task(async function test_tabs_update() {
|
||||
// shown when a tabHide extension is shutdown. We additionally test the
|
||||
// tabs.onUpdated listener gets called with hidden state changes.
|
||||
add_task(async function test_tabs_disable() {
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [["extensions.webextensions.tabhide.enabled", true]],
|
||||
});
|
||||
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, "http://example.com/");
|
||||
await BrowserTestUtils.switchTab(gBrowser, gBrowser.tabs[0]);
|
||||
|
||||
|
@ -4934,8 +4934,8 @@ pref("extensions.webextensions.remote", false);
|
||||
// unless other process sandboxing and extension remoting prefs are changed.
|
||||
pref("extensions.webextensions.protocol.remote", true);
|
||||
|
||||
// Disable tab hiding API by default.
|
||||
pref("extensions.webextensions.tabhide.enabled", false);
|
||||
// Enable tab hiding API by default.
|
||||
pref("extensions.webextensions.tabhide.enabled", true);
|
||||
|
||||
pref("extensions.webextensions.background-delayed-startup", false);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user