mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
Backed out changeset 3a149a84ce47 (bug 1330349)
This commit is contained in:
parent
79d7981ee8
commit
da4c62774c
@ -662,9 +662,8 @@ function _getInternalID(id) {
|
||||
function _setCurrentTheme(aData, aLocal) {
|
||||
aData = _sanitizeTheme(aData, null, aLocal);
|
||||
|
||||
let needsRestart = (aData.type == "theme") &&
|
||||
Services.prefs.prefHasUserValue(PREF_GENERAL_SKINS_SELECTEDSKIN) &&
|
||||
!Services.prefs.getBoolPref(PREF_EM_DSS_ENABLED);
|
||||
let needsRestart = (ADDON_TYPE == "theme") &&
|
||||
Services.prefs.prefHasUserValue(PREF_GENERAL_SKINS_SELECTEDSKIN);
|
||||
|
||||
let cancel = Cc["@mozilla.org/supports-PRBool;1"].createInstance(Ci.nsISupportsPRBool);
|
||||
cancel.data = false;
|
||||
|
@ -1054,30 +1054,6 @@ const EXTENSIONS_DB = "extensions.json";
|
||||
var gExtensionsJSON = gProfD.clone();
|
||||
gExtensionsJSON.append(EXTENSIONS_DB);
|
||||
|
||||
function promiseWebExtensionStartup() {
|
||||
const {Management} = Components.utils.import("resource://gre/modules/Extension.jsm", {});
|
||||
|
||||
return new Promise(resolve => {
|
||||
let listener = (evt, extension) => {
|
||||
Management.off("ready", listener);
|
||||
resolve(extension);
|
||||
};
|
||||
|
||||
Management.on("ready", listener);
|
||||
});
|
||||
}
|
||||
|
||||
function promiseInstallWebExtension(aData) {
|
||||
let addonFile = createTempWebExtensionFile(aData);
|
||||
|
||||
return promiseInstallAllFiles([addonFile]).then(installs => {
|
||||
Services.obs.notifyObservers(addonFile, "flush-cache-entry", null);
|
||||
// Since themes are disabled by default, it won't start up.
|
||||
if ("theme" in aData.manifest)
|
||||
return installs[0].addon;
|
||||
return promiseWebExtensionStartup();
|
||||
});
|
||||
}
|
||||
|
||||
// By default use strict compatibility
|
||||
Services.prefs.setBoolPref("extensions.strictCompatibility", true);
|
||||
|
@ -359,17 +359,17 @@ function run_test_4() {
|
||||
});
|
||||
}
|
||||
|
||||
// Switching to a custom theme should disable the lightweight theme and not
|
||||
// require a restart.
|
||||
// Switching to a custom theme should disable the lightweight theme and require
|
||||
// a restart. Cancelling that should also be possible.
|
||||
function run_test_5() {
|
||||
prepare_test({
|
||||
"2@personas.mozilla.org": [
|
||||
["onDisabling", false],
|
||||
["onDisabled", false]
|
||||
"onDisabled"
|
||||
],
|
||||
"theme2@tests.mozilla.org": [
|
||||
["onEnabling", false],
|
||||
["onEnabled", false]
|
||||
"onEnabled"
|
||||
]
|
||||
});
|
||||
|
||||
@ -381,12 +381,11 @@ function run_test_5() {
|
||||
|
||||
prepare_test({
|
||||
"2@personas.mozilla.org": [
|
||||
["onEnabling", false],
|
||||
["onEnabled", false]
|
||||
"onEnabling"
|
||||
],
|
||||
"theme2@tests.mozilla.org": [
|
||||
["onDisabling", false],
|
||||
["onDisabled", false]
|
||||
"onDisabled"
|
||||
]
|
||||
});
|
||||
|
||||
@ -396,12 +395,11 @@ function run_test_5() {
|
||||
|
||||
prepare_test({
|
||||
"2@personas.mozilla.org": [
|
||||
["onDisabling", false],
|
||||
["onDisabled", false]
|
||||
["onOperationCancelled", true]
|
||||
],
|
||||
"theme2@tests.mozilla.org": [
|
||||
["onEnabling", false],
|
||||
["onEnabled", false]
|
||||
"onEnabled"
|
||||
]
|
||||
});
|
||||
|
||||
@ -441,16 +439,15 @@ function check_test_5() {
|
||||
});
|
||||
}
|
||||
|
||||
// Switching from a custom theme to a lightweight theme shouldn't require a restart
|
||||
// Switching from a custom theme to a lightweight theme should require a restart
|
||||
function run_test_6() {
|
||||
prepare_test({
|
||||
"2@personas.mozilla.org": [
|
||||
["onEnabling", false],
|
||||
["onEnabled", false]
|
||||
"onEnabling",
|
||||
],
|
||||
"theme2@tests.mozilla.org": [
|
||||
["onDisabling", false],
|
||||
["onDisabled", false]
|
||||
"onDisabled"
|
||||
]
|
||||
});
|
||||
|
||||
@ -462,12 +459,11 @@ function run_test_6() {
|
||||
|
||||
prepare_test({
|
||||
"2@personas.mozilla.org": [
|
||||
["onDisabling", false],
|
||||
["onDisabled", false]
|
||||
"onOperationCancelled",
|
||||
],
|
||||
"theme2@tests.mozilla.org": [
|
||||
["onEnabling", false],
|
||||
["onEnabled", false]
|
||||
"onEnabled"
|
||||
]
|
||||
});
|
||||
|
||||
@ -477,12 +473,11 @@ function run_test_6() {
|
||||
|
||||
prepare_test({
|
||||
"2@personas.mozilla.org": [
|
||||
["onEnabling", false],
|
||||
["onEnabled", false]
|
||||
"onEnabling",
|
||||
],
|
||||
"theme2@tests.mozilla.org": [
|
||||
["onDisabling", false],
|
||||
["onDisabled", false]
|
||||
"onDisabled"
|
||||
]
|
||||
});
|
||||
|
||||
@ -490,13 +485,13 @@ function run_test_6() {
|
||||
|
||||
ensure_test_completed();
|
||||
|
||||
do_check_true(p2.isActive);
|
||||
do_check_false(p2.isActive);
|
||||
do_check_false(p2.userDisabled);
|
||||
do_check_eq(p2.pendingOperations, AddonManager.PENDING_NONE);
|
||||
do_check_true(hasFlag(AddonManager.PENDING_ENABLE, p2.pendingOperations));
|
||||
do_check_false(t2.isActive);
|
||||
do_check_true(t2.userDisabled);
|
||||
do_check_eq(t2.pendingOperations, AddonManager.PENDING_NONE);
|
||||
do_check_true(gLWThemeChanged);
|
||||
do_check_false(hasFlag(AddonManager.PENDING_DISABLE, t2.pendingOperations));
|
||||
do_check_false(gLWThemeChanged);
|
||||
|
||||
do_execute_soon(check_test_6);
|
||||
});
|
||||
|
@ -351,73 +351,6 @@ add_task(function* canUndoUninstallDisabled() {
|
||||
yield promiseRestartManager();
|
||||
});
|
||||
|
||||
add_task(function* uninstallWebExtensionOffersUndo() {
|
||||
let { id: addonId } = yield promiseInstallWebExtension({
|
||||
manifest: {
|
||||
"author": "Some author",
|
||||
manifest_version: 2,
|
||||
name: "Web Extension Name",
|
||||
version: "1.0",
|
||||
theme: { images: { headerURL: "https://example.com/example.png" } },
|
||||
}
|
||||
});
|
||||
|
||||
let [ t1, d ] = yield promiseAddonsByIDs([addonId, "default@tests.mozilla.org"]);
|
||||
|
||||
Assert.ok(t1, "Addon should be there");
|
||||
Assert.ok(!t1.isActive);
|
||||
Assert.ok(t1.userDisabled);
|
||||
Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
|
||||
|
||||
Assert.ok(d, "Addon should be there");
|
||||
Assert.ok(d.isActive);
|
||||
Assert.ok(!d.userDisabled);
|
||||
Assert.equal(d.pendingOperations, AddonManager.PENDING_NONE);
|
||||
|
||||
Assert.equal(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
|
||||
|
||||
prepare_test({ [addonId]: [ "onUninstalling" ] });
|
||||
t1.uninstall(true);
|
||||
ensure_test_completed();
|
||||
|
||||
Assert.ok(!t1.isActive);
|
||||
Assert.ok(t1.userDisabled);
|
||||
Assert.ok(hasFlag(t1.pendingOperations, AddonManager.PENDING_UNINSTALL));
|
||||
|
||||
Assert.equal(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
|
||||
|
||||
prepare_test({
|
||||
[addonId]: [
|
||||
"onOperationCancelled"
|
||||
]
|
||||
});
|
||||
t1.cancelUninstall();
|
||||
ensure_test_completed();
|
||||
|
||||
Assert.ok(!t1.isActive);
|
||||
Assert.ok(t1.userDisabled);
|
||||
Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
|
||||
|
||||
yield promiseRestartManager();
|
||||
|
||||
[ t1, d ] = yield promiseAddonsByIDs([addonId, "default@tests.mozilla.org"]);
|
||||
|
||||
Assert.ok(d);
|
||||
Assert.ok(d.isActive);
|
||||
Assert.ok(!d.userDisabled);
|
||||
Assert.equal(d.pendingOperations, AddonManager.PENDING_NONE);
|
||||
|
||||
Assert.ok(t1);
|
||||
Assert.ok(!t1.isActive);
|
||||
Assert.ok(t1.userDisabled);
|
||||
Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
|
||||
|
||||
Assert.equal(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
|
||||
|
||||
t1.uninstall();
|
||||
yield promiseRestartManager();
|
||||
});
|
||||
|
||||
// Tests that uninstalling an enabled lightweight theme offers the option to undo
|
||||
add_task(function* uninstallLWTOffersUndo() {
|
||||
// skipped since lightweight themes don't support undoable uninstall yet
|
||||
|
@ -14,14 +14,37 @@ profileDir.append("extensions");
|
||||
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "42");
|
||||
startupManager();
|
||||
|
||||
const { GlobalManager } = Components.utils.import("resource://gre/modules/Extension.jsm", {});
|
||||
const { GlobalManager, Management } = Components.utils.import("resource://gre/modules/Extension.jsm", {});
|
||||
|
||||
function promiseAddonStartup() {
|
||||
return new Promise(resolve => {
|
||||
let listener = (evt, extension) => {
|
||||
Management.off("ready", listener);
|
||||
resolve(extension);
|
||||
};
|
||||
|
||||
Management.on("ready", listener);
|
||||
});
|
||||
}
|
||||
|
||||
function promiseInstallWebExtension(aData) {
|
||||
let addonFile = createTempWebExtensionFile(aData);
|
||||
|
||||
return promiseInstallAllFiles([addonFile]).then(installs => {
|
||||
Services.obs.notifyObservers(addonFile, "flush-cache-entry", null);
|
||||
// Since themes are disabled by default, it won't start up.
|
||||
if ("theme" in aData.manifest)
|
||||
return installs[0].addon;
|
||||
return promiseAddonStartup();
|
||||
});
|
||||
}
|
||||
|
||||
add_task(function*() {
|
||||
equal(GlobalManager.extensionMap.size, 0);
|
||||
|
||||
yield Promise.all([
|
||||
promiseInstallAllFiles([do_get_addon("webextension_1")], true),
|
||||
promiseWebExtensionStartup()
|
||||
promiseAddonStartup()
|
||||
]);
|
||||
|
||||
equal(GlobalManager.extensionMap.size, 1);
|
||||
@ -59,7 +82,7 @@ add_task(function*() {
|
||||
equal(GlobalManager.extensionMap.size, 0);
|
||||
|
||||
startupManager();
|
||||
yield promiseWebExtensionStartup();
|
||||
yield promiseAddonStartup();
|
||||
|
||||
equal(GlobalManager.extensionMap.size, 1);
|
||||
ok(GlobalManager.extensionMap.has(ID));
|
||||
@ -88,7 +111,7 @@ add_task(function*() {
|
||||
equal(GlobalManager.extensionMap.size, 0);
|
||||
|
||||
addon.userDisabled = false;
|
||||
yield promiseWebExtensionStartup();
|
||||
yield promiseAddonStartup();
|
||||
|
||||
equal(GlobalManager.extensionMap.size, 1);
|
||||
ok(GlobalManager.extensionMap.has(ID));
|
||||
@ -115,7 +138,7 @@ add_task(function*() {
|
||||
}, profileDir);
|
||||
|
||||
startupManager();
|
||||
yield promiseWebExtensionStartup();
|
||||
yield promiseAddonStartup();
|
||||
|
||||
let addon = yield promiseAddonByID(ID);
|
||||
do_check_neq(addon, null);
|
||||
@ -140,7 +163,7 @@ add_task(function* test_manifest_localization() {
|
||||
const extensionId = "webextension3@tests.mozilla.org";
|
||||
|
||||
yield promiseInstallAllFiles([do_get_addon("webextension_3")], true);
|
||||
yield promiseWebExtensionStartup();
|
||||
yield promiseAddonStartup();
|
||||
|
||||
let addon = yield promiseAddonByID(extensionId);
|
||||
addon.userDisabled = true;
|
||||
|
@ -1,236 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* This file contains test for 'theme' type WebExtension addons. Tests focus mostly
|
||||
* on interoperability between the different theme formats (XUL and LWT) and
|
||||
* Addon Manager integration.
|
||||
*
|
||||
* Coverage may overlap with other tests in this folder.
|
||||
*/
|
||||
|
||||
const {LightweightThemeManager} = AM_Cu.import("resource://gre/modules/LightweightThemeManager.jsm", {});
|
||||
const THEME_IDS = ["theme1@tests.mozilla.org", "theme3@tests.mozilla.org",
|
||||
"theme2@personas.mozilla.org", "default@tests.mozilla.org"];
|
||||
const REQUIRE_RESTART = { [THEME_IDS[0]]: 1 };
|
||||
const DEFAULT_THEME = THEME_IDS[3];
|
||||
|
||||
const profileDir = gProfD.clone();
|
||||
profileDir.append("extensions");
|
||||
|
||||
// We remember the last/ currently active theme for tracking events.
|
||||
var gActiveTheme = null;
|
||||
|
||||
add_task(function* setup_to_default_browserish_state() {
|
||||
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
|
||||
|
||||
writeInstallRDFForExtension({
|
||||
id: THEME_IDS[0],
|
||||
version: "1.0",
|
||||
name: "Test 1",
|
||||
type: 4,
|
||||
skinnable: true,
|
||||
internalName: "theme1/1.0",
|
||||
targetApplications: [{
|
||||
id: "xpcshell@tests.mozilla.org",
|
||||
minVersion: "1",
|
||||
maxVersion: "2"
|
||||
}]
|
||||
}, profileDir);
|
||||
|
||||
yield promiseWriteWebManifestForExtension({
|
||||
author: "Some author",
|
||||
manifest_version: 2,
|
||||
name: "Web Extension Name",
|
||||
version: "1.0",
|
||||
theme: { images: { headerURL: "https://example.com/example.png" } },
|
||||
applications: {
|
||||
gecko: {
|
||||
id: THEME_IDS[1]
|
||||
}
|
||||
}
|
||||
}, profileDir);
|
||||
|
||||
// We need a default theme for some of these things to work but we have hidden
|
||||
// the one in the application directory.
|
||||
writeInstallRDFForExtension({
|
||||
id: DEFAULT_THEME,
|
||||
version: "1.0",
|
||||
name: "Default",
|
||||
internalName: "classic/1.0",
|
||||
targetApplications: [{
|
||||
id: "xpcshell@tests.mozilla.org",
|
||||
minVersion: "1",
|
||||
maxVersion: "2"
|
||||
}]
|
||||
}, profileDir);
|
||||
|
||||
startupManager();
|
||||
|
||||
// We can add an LWT only after the Addon Manager was started.
|
||||
LightweightThemeManager.currentTheme = {
|
||||
id: THEME_IDS[2].substr(0, THEME_IDS[2].indexOf("@")),
|
||||
version: "1",
|
||||
name: "Bling",
|
||||
description: "SO MUCH BLING!",
|
||||
author: "Pixel Pusher",
|
||||
homepageURL: "http://mochi.test:8888/data/index.html",
|
||||
headerURL: "http://mochi.test:8888/data/header.png",
|
||||
previewURL: "http://mochi.test:8888/data/preview.png",
|
||||
iconURL: "http://mochi.test:8888/data/icon.png",
|
||||
textcolor: Math.random().toString(),
|
||||
accentcolor: Math.random().toString()
|
||||
};
|
||||
|
||||
let [ t1, t2, t3, d ] = yield promiseAddonsByIDs(THEME_IDS);
|
||||
Assert.ok(t1, "Theme addon should exist");
|
||||
Assert.ok(t2, "Theme addon should exist");
|
||||
Assert.ok(t3, "Theme addon should exist");
|
||||
Assert.ok(d, "Theme addon should exist");
|
||||
|
||||
t1.userDisabled = t2.userDisabled = t3.userDisabled = true;
|
||||
Assert.ok(!t1.isActive, "Theme should be disabled");
|
||||
Assert.ok(!t2.isActive, "Theme should be disabled");
|
||||
Assert.ok(!t3.isActive, "Theme should be disabled");
|
||||
Assert.ok(d.isActive, "Default theme should be active");
|
||||
|
||||
yield promiseRestartManager();
|
||||
|
||||
[ t1, t2, t3, d ] = yield promiseAddonsByIDs(THEME_IDS);
|
||||
Assert.ok(!t1.isActive, "Theme should still be disabled");
|
||||
Assert.ok(!t2.isActive, "Theme should still be disabled");
|
||||
Assert.ok(!t3.isActive, "Theme should still be disabled");
|
||||
Assert.ok(d.isActive, "Default theme should still be active");
|
||||
|
||||
gActiveTheme = d.id;
|
||||
});
|
||||
|
||||
/**
|
||||
* Set the `userDisabled` property of one specific theme and check if the theme
|
||||
* switching works as expected by checking the state of all installed themes.
|
||||
*
|
||||
* @param {String} which ID of the addon to set the `userDisabled` property on
|
||||
* @param {Boolean} disabled Flag value to switch to
|
||||
*/
|
||||
function* setDisabledStateAndCheck(which, disabled = false) {
|
||||
if (disabled)
|
||||
Assert.equal(which, gActiveTheme, "Only the active theme can be disabled");
|
||||
|
||||
let themeToDisable = disabled ? which : gActiveTheme;
|
||||
let themeToEnable = disabled ? DEFAULT_THEME : which;
|
||||
let expectRestart = !!(REQUIRE_RESTART[themeToDisable] || REQUIRE_RESTART[themeToEnable]);
|
||||
|
||||
let expectedStates = {
|
||||
[themeToDisable]: true,
|
||||
[themeToEnable]: false
|
||||
};
|
||||
let expectedEvents = {
|
||||
[themeToDisable]: [ [ "onDisabling", expectRestart ] ],
|
||||
[themeToEnable]: [ [ "onEnabling", expectRestart ] ]
|
||||
};
|
||||
if (!expectRestart) {
|
||||
expectedEvents[themeToDisable].push([ "onDisabled", false ]);
|
||||
expectedEvents[themeToEnable].push([ "onEnabled", false ]);
|
||||
}
|
||||
|
||||
// Set the state of the theme to change.
|
||||
let theme = yield promiseAddonByID(which);
|
||||
prepare_test(expectedEvents);
|
||||
theme.userDisabled = disabled;
|
||||
|
||||
let isDisabled;
|
||||
for (theme of yield promiseAddonsByIDs(THEME_IDS)) {
|
||||
isDisabled = (theme.id in expectedStates) ? expectedStates[theme.id] : true;
|
||||
Assert.equal(theme.userDisabled, isDisabled,
|
||||
`Theme '${theme.id}' should be ${isDisabled ? "dis" : "en"}abled`);
|
||||
// Some themes need a restart to get their act together.
|
||||
if (expectRestart && (theme.id == themeToEnable || theme.id == themeToDisable)) {
|
||||
let expectedFlag = theme.id == themeToEnable ? AddonManager.PENDING_ENABLE : AddonManager.PENDING_DISABLE;
|
||||
Assert.ok(hasFlag(theme.pendingOperations, expectedFlag),
|
||||
"When expecting a restart, the pending operation flags should match");
|
||||
} else {
|
||||
Assert.equal(theme.pendingOperations, AddonManager.PENDING_NONE,
|
||||
"There should be no pending operations when no restart is expected");
|
||||
Assert.equal(theme.isActive, !isDisabled,
|
||||
`Theme '${theme.id} should be ${isDisabled ? "in" : ""}active`);
|
||||
}
|
||||
}
|
||||
|
||||
yield promiseRestartManager();
|
||||
|
||||
// All should still be good after a restart of the Addon Manager.
|
||||
for (theme of yield promiseAddonsByIDs(THEME_IDS)) {
|
||||
isDisabled = (theme.id in expectedStates) ? expectedStates[theme.id] : true;
|
||||
Assert.equal(theme.userDisabled, isDisabled,
|
||||
`Theme '${theme.id}' should be ${isDisabled ? "dis" : "en"}abled`);
|
||||
Assert.equal(theme.isActive, !isDisabled,
|
||||
`Theme '${theme.id}' should be ${isDisabled ? "in" : ""}active`);
|
||||
Assert.equal(theme.pendingOperations, AddonManager.PENDING_NONE,
|
||||
"There should be no pending operations left");
|
||||
if (!isDisabled)
|
||||
gActiveTheme = theme.id;
|
||||
}
|
||||
|
||||
ensure_test_completed();
|
||||
}
|
||||
|
||||
add_task(function* test_dss_themes() {
|
||||
// Enable the complete theme.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[0]);
|
||||
|
||||
// Disabling the complete theme should revert to the default theme.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[0], true);
|
||||
|
||||
// Enable it again.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[0]);
|
||||
|
||||
// Enabling a WebExtension theme should disable the active theme.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[1]);
|
||||
|
||||
// Switching back should disable the WebExtension theme.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[0]);
|
||||
});
|
||||
|
||||
add_task(function* test_WebExtension_themes() {
|
||||
// Enable the WebExtension theme.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[1]);
|
||||
|
||||
// Disabling WebExtension should revert to the default theme.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[1], true);
|
||||
|
||||
// Enable it again.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[1]);
|
||||
|
||||
// Enabling an LWT should disable the active theme.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[2]);
|
||||
|
||||
// Switching back should disable the LWT.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[1]);
|
||||
});
|
||||
|
||||
add_task(function* test_LWTs() {
|
||||
// Start with enabling an LWT.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[2]);
|
||||
|
||||
// Disabling LWT should revert to the default theme.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[2], true);
|
||||
|
||||
// Enable it again.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[2]);
|
||||
|
||||
// Enabling a WebExtension theme should disable the active theme.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[1]);
|
||||
|
||||
// Switching back should disable the LWT.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[2]);
|
||||
});
|
||||
|
||||
add_task(function* test_default_theme() {
|
||||
// Explicitly enable the default theme.
|
||||
yield* setDisabledStateAndCheck(DEFAULT_THEME);
|
||||
|
||||
// Swith to the WebExtension theme.
|
||||
yield* setDisabledStateAndCheck(THEME_IDS[1]);
|
||||
|
||||
// Enable it again.
|
||||
yield* setDisabledStateAndCheck(DEFAULT_THEME);
|
||||
});
|
@ -8,7 +8,5 @@ tags = addons
|
||||
|
||||
[test_webextension_paths.js]
|
||||
tags = webextensions
|
||||
[test_webextension_theme.js]
|
||||
tags = webextensions
|
||||
|
||||
[include:xpcshell-shared.ini]
|
||||
|
Loading…
Reference in New Issue
Block a user