Bug 1455040 - Enable tab hiding API by default r=mixedpuppy

MozReview-Commit-ID: HtzpV7bySeY

--HG--
extra : rebase_source : e72a09827a7bf065d5b380e67d34613e3b93dfa7
This commit is contained in:
Mark Striemer 2018-05-07 12:27:41 -05:00
parent fd51c12acf
commit 4f2d99cc85
3 changed files with 36 additions and 46 deletions

View File

@ -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();
});

View File

@ -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]);

View File

@ -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);