--- a/toolkit/components/extensions/Extension.jsm
+++ b/toolkit/components/extensions/Extension.jsm
@@ -1217,16 +1217,20 @@ class Extension extends ExtensionData {
Services.ppmm.addMessageListener(this.MESSAGE_EMIT_EVENT, this);
if (addonData.cleanupFile) {
Services.obs.addObserver(this, "xpcom-shutdown");
this.cleanupFile = addonData.cleanupFile || null;
delete addonData.cleanupFile;
}
+ if (addonData.TEST_NO_ADDON_MANAGER) {
+ this.dontSaveStartupData = true;
+ }
+
this.addonData = addonData;
this.startupData = addonData.startupData || {};
this.startupReason = startupReason;
if (["ADDON_UPGRADE", "ADDON_DOWNGRADE"].includes(startupReason)) {
StartupCache.clearAddonData(addonData.id);
}
@@ -1415,16 +1419,19 @@ class Extension extends ExtensionData {
}
get experimentsAllowed() {
return (AddonSettings.ALLOW_LEGACY_EXTENSIONS ||
this.isPrivileged);
}
saveStartupData() {
+ if (this.dontSaveStartupData) {
+ return;
+ }
AddonManagerPrivate.setStartupData(this.id, this.startupData);
}
async _parseManifest() {
let manifest = await super.parseManifest();
if (manifest && manifest.permissions.has("mozillaAddons") &&
!this.isPrivileged) {
Cu.reportError(`Stripping mozillaAddons permission from ${this.id}`);
--- a/toolkit/components/extensions/ExtensionTestCommon.jsm
+++ b/toolkit/components/extensions/ExtensionTestCommon.jsm
@@ -382,11 +382,12 @@ var ExtensionTestCommon = class Extensio
}
return new Extension({
id,
resourceURI: jarURI,
cleanupFile: file,
signedState,
temporarilyInstalled: !!data.temporarilyInstalled,
+ TEST_NO_ADDON_MANAGER: true,
});
}
};
--- a/toolkit/components/extensions/test/xpcshell/test_ext_persistent_events.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_persistent_events.js
@@ -233,17 +233,17 @@ add_task(async function() {
new Promise(resolve => extension.extension.once("shutdown", resolve)),
AddonTestUtils.promiseShutdownManager(),
]);
check(info, "unregister");
// Check that listeners are primed at the next browser startup.
[info] = await Promise.all([
promiseObservable("prime-event-listener", 3),
- AddonTestUtils.promiseStartupManager(false),
+ AddonTestUtils.promiseStartupManager(),
]);
check(info, "prime");
// Check that primed listeners are converted to regular listeners
// when the background page is started after browser startup.
let p = promiseObservable("convert-event-listener", 3);
Services.obs.notifyObservers(null, "sessionstore-windows-restored");
info = await p;
@@ -269,17 +269,17 @@ add_task(async function() {
promiseObservable("unregister-primed-listener", 3),
AddonTestUtils.promiseShutdownManager(),
]);
check(info, "unregister");
// Start up again, listener should be primed
[info] = await Promise.all([
promiseObservable("prime-event-listener", 3),
- AddonTestUtils.promiseStartupManager(false),
+ AddonTestUtils.promiseStartupManager(),
]);
check(info, "prime");
// Check that triggering the event before the listener has been converted
// causes the background page to be loaded and the listener to be converted,
// and the listener is invoked.
p = promiseObservable("convert-event-listener", 3);
eventDetails.test = "startup event";
@@ -304,17 +304,17 @@ add_task(async function() {
// one listener has been removed.
info = await promiseObservable("unregister-primed-listener", 2,
() => AddonTestUtils.promiseShutdownManager());
check(info, "unregister", {listener3: false});
// Check that after restart, only listeners that were present at
// the end of the last session are primed.
info = await promiseObservable("prime-event-listener", 2,
- () => AddonTestUtils.promiseStartupManager(false));
+ () => AddonTestUtils.promiseStartupManager());
check(info, "prime", {listener3: false});
// Check that if the background script does not re-register listeners,
// the primed listeners are unregistered after the background page
// starts up.
p = promiseObservable("unregister-primed-listener", 1,
() => extension.awaitMessage("ready"));
Services.obs.notifyObservers(null, "sessionstore-windows-restored");
@@ -332,17 +332,17 @@ add_task(async function() {
await extension.awaitMessage("unregistered");
// Shut down, start up
info = await promiseObservable("unregister-primed-listener", 1,
() => AddonTestUtils.promiseShutdownManager());
check(info, "unregister", {listener2: false, listener3: false});
info = await promiseObservable("prime-event-listener", 1,
- () => AddonTestUtils.promiseStartupManager(false));
+ () => AddonTestUtils.promiseStartupManager());
check(info, "register", {listener2: false, listener3: false});
// Check that firing event1 causes the listener fire callback to
// reject.
p = promiseObservable("listener-callback-exception", 1);
Services.obs.notifyObservers(eventSubject, "fire-onEvent1");
await p;
ok(true, "Primed listener that was not re-registered received an error when event was triggered during startup");
--- a/toolkit/components/extensions/test/xpcshell/test_ext_proxy_startup.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_proxy_startup.js
@@ -82,17 +82,17 @@ add_task(async function test_proxy_start
]);
equal(1, proxiedRequests, "proxied request ok");
equal(0, nonProxiedRequests, "non proxied request ok");
await ExtensionTestUtils.fetch("http://example.com/?a=0");
equal(1, proxiedRequests, "proxied request ok");
equal(1, nonProxiedRequests, "non proxied request ok");
- await promiseRestartManager(false);
+ await promiseRestartManager();
await extension.awaitStartup();
let events = trackEvents(extension);
// Initiate a non-proxied request to make sure the startup listeners are using
// the extensions filters/etc.
await ExtensionTestUtils.fetch("http://example.com/?a=1");
equal(1, proxiedRequests, "proxied request ok");
--- a/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_startup.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_startup.js
@@ -42,17 +42,17 @@ add_task(async function() {
browser.webRequest.onBeforeRequest.addListener(details => {
browser.test.sendMessage("saw-request");
}, {urls: ["http://example.com/data/file_sample.html"]});
},
});
await extension.startup();
- await promiseRestartManager(false);
+ await promiseRestartManager();
await extension.awaitStartup();
let events = trackEvents(extension);
await ExtensionTestUtils.fetch("http://example.com/",
"http://example.com/data/file_sample.html");
equal(events.get("background-page-event"), true,
@@ -94,17 +94,17 @@ add_task(async function() {
browser.test.sendMessage("ready");
},
});
await extension.startup();
await extension.awaitMessage("ready");
- await promiseRestartManager(false);
+ await promiseRestartManager();
await extension.awaitStartup();
let events = trackEvents(extension);
await ExtensionTestUtils.fetch("http://example.com/",
"http://example.com/data/file_sample.html");
equal(events.get("background-page-event"), false,
@@ -153,17 +153,17 @@ add_task(async function() {
permissions: ["webRequest", "webRequestBlocking", "http://example.com/"],
},
background: `(${background})(${uneval(DATA)})`,
});
await extension.startup();
- await promiseRestartManager(false);
+ await promiseRestartManager();
await extension.awaitStartup();
let dataPromise = ExtensionTestUtils.fetch("http://example.com/",
"http://example.com/data/file_sample.html");
Services.obs.notifyObservers(null, "browser-delayed-startup-finished");
let data = await dataPromise;
--- a/toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js
+++ b/toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js
@@ -890,16 +890,17 @@ add_task(async function setup() {
// The test runs in a fresh profile so starting the AddonManager causes
// the addons database to be created (as does setting new theme).
// For test_addonsStartup below, we want to test a "warm" startup where
// there is already a database on disk. Simulate that here by just
// restarting the AddonManager.
await AddonTestUtils.promiseShutdownManager();
await AddonTestUtils.overrideBuiltIns({"system": []});
+ AddonTestUtils.addonStartup.remove(true);
await AddonTestUtils.promiseStartupManager();
// Register a fake plugin host for consistent flash version data.
registerFakePluginHost();
// Setup a webserver to serve Addons, Plugins, etc.
gHttpServer = new HttpServer();
gHttpServer.start(-1);
--- a/toolkit/mozapps/extensions/internal/AddonTestUtils.jsm
+++ b/toolkit/mozapps/extensions/internal/AddonTestUtils.jsm
@@ -724,29 +724,21 @@ var AddonTestUtils = {
overrideBlocklist(addons) {
let mock = new MockBlocklist(addons);
mock.register();
return mock;
},
/**
* Starts up the add-on manager as if it was started by the application.
- *
- * @param {boolean} [appChanged = true]
- * An optional boolean parameter to simulate the case where the
- * application has changed version since the last run. If not passed it
- * defaults to true
*/
- async promiseStartupManager(appChanged = true) {
+ async promiseStartupManager() {
if (this.addonIntegrationService)
throw new Error("Attempting to startup manager that was already started.");
- if (appChanged && this.addonStartup.exists())
- this.addonStartup.remove(true);
-
this.addonIntegrationService = Cc["@mozilla.org/addons/integration;1"]
.getService(Ci.nsIObserver);
this.addonIntegrationService.observe(null, "addons-startup", null);
this.emit("addon-manager-started");
// Load the add-ons list as it was after extension registration
@@ -794,16 +786,28 @@ var AddonTestUtils = {
if (shutdownError)
throw shutdownError;
return true;
});
},
+ /**
+ * Asynchronously restart the AddonManager. If newVersion is provided,
+ * simulate an application upgrade (or downgrade) where the version
+ * is changed to newVersion when re-started.
+ *
+ * @param {string} [newVersion]
+ * If provided, the application version is changed to this string
+ * after the AddonManager is shut down, before it is re-started.
+ *
+ * @returns {Promise}
+ * Resolves when the AddonManager has been re-started.
+ */
promiseRestartManager(newVersion) {
return this.promiseShutdownManager()
.then(() => {
if (newVersion)
this.appInfo.version = newVersion;
return this.promiseStartupManager(!!newVersion);
});
--- a/toolkit/mozapps/extensions/test/xpcshell/head_addons.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/head_addons.js
@@ -666,18 +666,23 @@ function do_check_compatibilityoverride(
}
function do_check_icons(aActual, aExpected) {
for (var size in aExpected) {
Assert.equal(aActual[size], aExpected[size]);
}
}
-function startupManager(aAppChanged) {
- promiseStartupManager(aAppChanged);
+function startupManager() {
+ // promiseStartupManager() does not actually do any asynchronous
+ // work so we don't need to wait for it here. Unfortunately, wrapping
+ // this wait awaitPromise() creates other unrelated failures, rather
+ // than going through those we should just get rid of this wrapper,
+ // see bug 1459998.
+ promiseStartupManager();
}
/**
* Restarts the add-on manager as if the host application was restarted.
*
* @param aNewVersion
* An optional new version to use for the application. Passing this
* will change nsIXULAppInfo.version and make the startup appear as if
@@ -1500,31 +1505,31 @@ async function getSystemAddonDirectories
*/
async function setupSystemAddonConditions(setup, distroDir) {
info("Clearing existing database.");
Services.prefs.clearUserPref(PREF_SYSTEM_ADDON_SET);
distroDir.leafName = "empty";
let updateList = [];
awaitPromise(overrideBuiltIns({ "system": updateList }));
- startupManager(false);
+ startupManager();
await promiseShutdownManager();
info("Setting up conditions.");
await setup.setup();
if (distroDir) {
if (distroDir.path.endsWith("hidden")) {
updateList = ["system1@tests.mozilla.org", "system2@tests.mozilla.org"];
} else if (distroDir.path.endsWith("prefilled")) {
updateList = ["system2@tests.mozilla.org", "system3@tests.mozilla.org"];
}
}
awaitPromise(overrideBuiltIns({ "system": updateList }));
- startupManager(false);
+ startupManager();
// Make sure the initial state is correct
info("Checking initial state.");
await checkInstalledSystemAddons(setup.initialState, distroDir);
}
/**
* Verify state of system add-ons after installation.
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bad_json.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bad_json.js
@@ -28,17 +28,17 @@ add_task(async function() {
await promiseStartupManager();
await promiseShutdownManager();
// First startup/shutdown finished
// Replace the JSON store with something bogus
await saveJSON({not: "what we expect to find"}, gExtensionsJSON.path);
- await promiseStartupManager(false);
+ await promiseStartupManager();
// Retrieve an addon to force the database to rebuild
let a1 = await AddonManager.getAddonByID(addon1.id);
Assert.equal(a1.id, addon1.id);
await promiseShutdownManager();
// Make sure our JSON database has schemaVersion and our installed extension
--- a/toolkit/mozapps/extensions/test/xpcshell/test_badschema.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_badschema.js
@@ -279,30 +279,30 @@ add_task(async function test_after_resta
await promiseShutdownManager();
});
add_task(async function test_after_schema_version_change() {
// After restarting the database won't be open so we can alter
// the schema
await changeXPIDBVersion(100);
- await promiseStartupManager(false);
+ await promiseStartupManager();
info("Test add-on state after schema version change");
let addons = await getAddons(IDS);
for (let [id, addon] of Object.entries(ADDONS)) {
checkAddon(id, addons.get(id),
Object.assign({}, addon.desiredValues, addon.afterCorruption));
}
await promiseShutdownManager();
});
add_task(async function test_after_second_restart() {
- await promiseStartupManager(false);
+ await promiseStartupManager();
info("Test add-on state after second restart");
let addons = await getAddons(IDS);
for (let [id, addon] of Object.entries(ADDONS)) {
checkAddon(id, addons.get(id),
Object.assign({}, addon.desiredValues, addon.afterSecondRestart));
}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_blocklistchange.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_blocklistchange.js
@@ -798,17 +798,17 @@ add_task(async function run_app_update_s
check_addon(r, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
});
add_task(async function update_schema_2() {
await promiseShutdownManager();
await changeXPIDBVersion(100);
gAppInfo.version = "2";
- await promiseStartupManager(true);
+ await promiseStartupManager();
let [s1, s2, s3, s4, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "1.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s2, "1.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s3, "1.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s4, "1.0", true, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(h, "1.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
@@ -822,50 +822,50 @@ add_task(async function update_schema_2(
});
add_task(async function update_schema_3() {
await promiseRestartManager();
await promiseShutdownManager();
await changeXPIDBVersion(100);
gAppInfo.version = "2.5";
- await promiseStartupManager(true);
+ await promiseStartupManager();
let [s1, s2, s3, s4, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "1.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s2, "1.0", true, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s3, "1.0", false, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s4, "1.0", true, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(h, "1.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
check_addon(r, "1.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
});
add_task(async function update_schema_4() {
await promiseShutdownManager();
await changeXPIDBVersion(100);
- startupManager(false);
+ startupManager();
let [s1, s2, s3, s4, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "1.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s2, "1.0", true, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s3, "1.0", false, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s4, "1.0", true, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(h, "1.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
check_addon(r, "1.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
});
add_task(async function update_schema_5() {
await promiseShutdownManager();
await changeXPIDBVersion(100);
gAppInfo.version = "1";
- await promiseStartupManager(true);
+ await promiseStartupManager();
let [s1, s2, s3, s4, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(s2, "1.0", true, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(s3, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(s4, "1.0", true, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(h, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
@@ -965,17 +965,17 @@ add_task(async function run_addon_change
setExtensionModifiedTime(getFileForAddon(profileDir, softblock3_2.id), Date.now() + 10000);
writeInstallRDFForExtension(softblock4_2, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, softblock4_2.id), Date.now() + 10000);
writeInstallRDFForExtension(hardblock_2, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, hardblock_2.id), Date.now() + 10000);
writeInstallRDFForExtension(regexpblock_2, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, regexpblock_2.id), Date.now() + 10000);
- startupManager(false);
+ startupManager();
let [s1, s2, s3, s4, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "2.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s2, "2.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s3, "2.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s4, "2.0", true, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(h, "2.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
@@ -1001,17 +1001,17 @@ add_task(async function run_addon_change
setExtensionModifiedTime(getFileForAddon(profileDir, softblock3_3.id), Date.now() + 20000);
writeInstallRDFForExtension(softblock4_3, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, softblock4_3.id), Date.now() + 20000);
writeInstallRDFForExtension(hardblock_3, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, hardblock_3.id), Date.now() + 20000);
writeInstallRDFForExtension(regexpblock_3, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, regexpblock_3.id), Date.now() + 20000);
- startupManager(false);
+ startupManager();
let [s1, s2, s3, s4, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "3.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s2, "3.0", true, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s3, "3.0", false, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s4, "3.0", true, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(h, "3.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
@@ -1029,17 +1029,17 @@ add_task(async function run_addon_change
setExtensionModifiedTime(getFileForAddon(profileDir, softblock3_1.id), Date.now() + 30000);
writeInstallRDFForExtension(softblock4_1, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, softblock4_1.id), Date.now() + 30000);
writeInstallRDFForExtension(hardblock_1, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, hardblock_1.id), Date.now() + 30000);
writeInstallRDFForExtension(regexpblock_1, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, regexpblock_1.id), Date.now() + 30000);
- startupManager(false);
+ startupManager();
let [s1, s2, s3, s4, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(s2, "1.0", true, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(s3, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(s4, "1.0", true, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(h, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
@@ -1056,27 +1056,27 @@ add_task(async function run_addon_change
getFileForAddon(profileDir, softblock1_1.id).remove(true);
getFileForAddon(profileDir, softblock2_1.id).remove(true);
getFileForAddon(profileDir, softblock3_1.id).remove(true);
getFileForAddon(profileDir, softblock4_1.id).remove(true);
getFileForAddon(profileDir, hardblock_1.id).remove(true);
getFileForAddon(profileDir, regexpblock_1.id).remove(true);
- await promiseStartupManager(false);
+ await promiseStartupManager();
await promiseShutdownManager();
writeInstallRDFForExtension(softblock1_2, profileDir);
writeInstallRDFForExtension(softblock2_2, profileDir);
writeInstallRDFForExtension(softblock3_2, profileDir);
writeInstallRDFForExtension(softblock4_2, profileDir);
writeInstallRDFForExtension(hardblock_2, profileDir);
writeInstallRDFForExtension(regexpblock_2, profileDir);
- startupManager(false);
+ startupManager();
let [s1, s2, s3, /* s4 */, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "2.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s2, "2.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s3, "2.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(h, "2.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
check_addon(r, "2.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
@@ -1101,17 +1101,17 @@ add_task(async function addon_change_2_t
setExtensionModifiedTime(getFileForAddon(profileDir, softblock3_3.id), Date.now() + 10000);
writeInstallRDFForExtension(softblock4_3, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, softblock4_3.id), Date.now() + 10000);
writeInstallRDFForExtension(hardblock_3, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, hardblock_3.id), Date.now() + 10000);
writeInstallRDFForExtension(regexpblock_3, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, regexpblock_3.id), Date.now() + 10000);
- startupManager(false);
+ startupManager();
let [s1, s2, s3, /* s4 */, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "3.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s2, "3.0", true, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s3, "3.0", false, false, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(h, "3.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
check_addon(r, "3.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
@@ -1128,17 +1128,17 @@ add_task(async function addon_change_2_t
setExtensionModifiedTime(getFileForAddon(profileDir, softblock3_1.id), Date.now() + 20000);
writeInstallRDFForExtension(softblock4_1, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, softblock4_1.id), Date.now() + 20000);
writeInstallRDFForExtension(hardblock_1, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, hardblock_1.id), Date.now() + 20000);
writeInstallRDFForExtension(regexpblock_1, profileDir);
setExtensionModifiedTime(getFileForAddon(profileDir, regexpblock_1.id), Date.now() + 20000);
- startupManager(false);
+ startupManager();
let [s1, s2, s3, s4, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(s2, "1.0", true, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(s3, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(h, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
check_addon(r, "1.0", false, false, Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
@@ -1182,27 +1182,27 @@ add_task(async function run_background_u
getFileForAddon(profileDir, softblock1_1.id).remove(true);
getFileForAddon(profileDir, softblock2_1.id).remove(true);
getFileForAddon(profileDir, softblock3_1.id).remove(true);
getFileForAddon(profileDir, softblock4_1.id).remove(true);
getFileForAddon(profileDir, hardblock_1.id).remove(true);
getFileForAddon(profileDir, regexpblock_1.id).remove(true);
- await promiseStartupManager(false);
+ await promiseStartupManager();
await promiseShutdownManager();
writeInstallRDFForExtension(softblock1_3, profileDir);
writeInstallRDFForExtension(softblock2_3, profileDir);
writeInstallRDFForExtension(softblock3_3, profileDir);
writeInstallRDFForExtension(softblock4_3, profileDir);
writeInstallRDFForExtension(hardblock_3, profileDir);
writeInstallRDFForExtension(regexpblock_3, profileDir);
- startupManager(false);
+ startupManager();
let [s1, s2, s3, s4, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "3.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s2, "3.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s3, "3.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(h, "3.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
check_addon(r, "3.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
@@ -1288,27 +1288,27 @@ add_task(async function run_manual_updat
getFileForAddon(profileDir, softblock1_1.id).remove(true);
getFileForAddon(profileDir, softblock2_1.id).remove(true);
getFileForAddon(profileDir, softblock3_1.id).remove(true);
getFileForAddon(profileDir, softblock4_1.id).remove(true);
getFileForAddon(profileDir, hardblock_1.id).remove(true);
getFileForAddon(profileDir, regexpblock_1.id).remove(true);
- await promiseStartupManager(false);
+ await promiseStartupManager();
await promiseShutdownManager();
writeInstallRDFForExtension(softblock1_1, profileDir);
writeInstallRDFForExtension(softblock2_1, profileDir);
writeInstallRDFForExtension(softblock3_1, profileDir);
writeInstallRDFForExtension(softblock4_1, profileDir);
writeInstallRDFForExtension(hardblock_1, profileDir);
writeInstallRDFForExtension(regexpblock_1, profileDir);
- startupManager(false);
+ startupManager();
let [s1, s2, s3, s4, h, r] = await promiseAddonsByIDs(ADDON_IDS);
check_addon(s1, "1.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s2, "1.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(s3, "1.0", true, true, Ci.nsIBlocklistService.STATE_SOFTBLOCKED);
check_addon(h, "1.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
check_addon(r, "1.0", false, false, Ci.nsIBlocklistService.STATE_BLOCKED);
@@ -1356,17 +1356,17 @@ add_task(async function run_local_instal
getFileForAddon(profileDir, softblock1_1.id).remove(true);
getFileForAddon(profileDir, softblock2_1.id).remove(true);
getFileForAddon(profileDir, softblock3_1.id).remove(true);
getFileForAddon(profileDir, softblock4_1.id).remove(true);
getFileForAddon(profileDir, hardblock_1.id).remove(true);
getFileForAddon(profileDir, regexpblock_1.id).remove(true);
- startupManager(false);
+ startupManager();
await promiseInstallAllFiles([
XPIS.blocklist_soft1_1,
XPIS.blocklist_soft2_1,
XPIS.blocklist_soft3_1,
XPIS.blocklist_soft4_1,
XPIS.blocklist_hard1_1,
XPIS.blocklist_regexp1_1,
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bootstrap.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bootstrap.js
@@ -319,17 +319,17 @@ add_task(async function test_2() {
add_task(async function test_3() {
await promiseShutdownManager();
BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
BootstrapMonitor.checkAddonNotStarted(ID1);
equal(getShutdownReason(), ADDON_DISABLE);
equal(getShutdownNewVersion(), undefined);
- await promiseStartupManager(false);
+ await promiseStartupManager();
BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
BootstrapMonitor.checkAddonNotStarted(ID1);
equal(getShutdownReason(), ADDON_DISABLE);
equal(getShutdownNewVersion(), undefined);
do_check_not_in_crash_annotation(ID1, "1.0");
ok(gAddonStartup.exists());
@@ -387,17 +387,17 @@ add_task(async function test_5() {
// By the time we've shut down, the database must have been written
ok(gExtensionsJSON.exists());
BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
BootstrapMonitor.checkAddonNotStarted(ID1);
equal(getShutdownReason(), APP_SHUTDOWN);
equal(getShutdownNewVersion(), undefined);
do_check_not_in_crash_annotation(ID1, "1.0");
- await promiseStartupManager(false);
+ await promiseStartupManager();
BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
BootstrapMonitor.checkAddonStarted(ID1, "1.0");
equal(getStartupReason(), APP_STARTUP);
equal(getStartupOldVersion(), undefined);
do_check_in_crash_annotation(ID1, "1.0");
let b1 = await AddonManager.getAddonByID(ID1);
notEqual(b1, null);
@@ -500,17 +500,17 @@ add_task(async function test_7() {
// Test that a bootstrapped extension dropped into the profile loads properly
// on startup and doesn't cause an EM restart
add_task(async function test_8() {
await promiseShutdownManager();
manuallyInstall(XPIS.test_bootstrap1_1, profileDir,
ID1);
- await promiseStartupManager(false);
+ await promiseStartupManager();
let b1 = await AddonManager.getAddonByID(ID1);
notEqual(b1, null);
equal(b1.version, "1.0");
ok(!b1.appDisabled);
ok(!b1.userDisabled);
ok(b1.isActive);
ok(!b1.isSystem);
@@ -525,17 +525,17 @@ add_task(async function test_8() {
// Test that items detected as removed during startup get removed properly
add_task(async function test_9() {
await promiseShutdownManager();
manuallyUninstall(profileDir, ID1);
BootstrapMonitor.clear(ID1);
- await promiseStartupManager(false);
+ await promiseStartupManager();
let b1 = await AddonManager.getAddonByID(ID1);
equal(b1, null);
do_check_not_in_crash_annotation(ID1, "1.0");
await checkBootstrappedPref();
});
@@ -675,17 +675,17 @@ add_task(async function test_11() {
// Tests that bootstrapped extensions are correctly loaded even if the app is
// upgraded at the same time
add_task(async function test_12() {
await promiseShutdownManager();
manuallyInstall(XPIS.test_bootstrap1_1, profileDir,
ID1);
- await promiseStartupManager(true);
+ await promiseStartupManager();
let b1 = await AddonManager.getAddonByID(ID1);
notEqual(b1, null);
equal(b1.version, "1.0");
ok(!b1.appDisabled);
ok(!b1.userDisabled);
ok(b1.isActive);
ok(!b1.isSystem);
@@ -769,17 +769,17 @@ add_task(async function test_13() {
add_task(async function test_14() {
await promiseRestartManager();
await promiseShutdownManager();
manuallyInstall(XPIS.test_bootstrap1_3, profileDir,
ID1);
- await promiseStartupManager(false);
+ await promiseStartupManager();
let b1 = await AddonManager.getAddonByID(ID1);
notEqual(b1, null);
equal(b1.version, "3.0");
ok(b1.appDisabled);
ok(!b1.userDisabled);
ok(!b1.isActive);
BootstrapMonitor.checkAddonInstalled(ID1, "3.0"); // We call install even for disabled add-ons
@@ -879,30 +879,30 @@ add_task(async function test_16() {
await promiseShutdownManager();
// Should have stopped
BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
BootstrapMonitor.checkAddonNotStarted(ID1);
gAppInfo.inSafeMode = true;
- await promiseStartupManager(false);
+ await promiseStartupManager();
let b1_2 = await AddonManager.getAddonByID(ID1);
// Should still be stopped
BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
BootstrapMonitor.checkAddonNotStarted(ID1);
ok(!b1_2.isActive);
equal(b1_2.iconURL, null);
equal(b1_2.aboutURL, null);
equal(b1_2.optionsURL, null);
await promiseShutdownManager();
gAppInfo.inSafeMode = false;
- await promiseStartupManager(false);
+ await promiseStartupManager();
// Should have started
BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
BootstrapMonitor.checkAddonStarted(ID1, "1.0");
let b1_3 = await AddonManager.getAddonByID(ID1);
b1_3.uninstall();
});
@@ -1060,17 +1060,17 @@ add_task(async function test_21() {
equal(getStartupOldVersion(), undefined);
await checkBootstrappedPref();
await promiseShutdownManager();
manuallyUninstall(userExtDir, ID1);
BootstrapMonitor.clear(ID1);
- await promiseStartupManager(false);
+ await promiseStartupManager();
});
// Check that an upgrade from the filesystem is detected and applied correctly
add_task(async function test_22() {
await promiseShutdownManager();
let file = manuallyInstall(XPIS.test_bootstrap1_1, profileDir,
ID1);
@@ -1239,15 +1239,15 @@ add_task(async function test_24() {
// Break the JSON.
let data = aomStartup.readStartupData();
data["app-profile"].addons[ID1].path += "foo";
await OS.File.writeAtomic(gAddonStartup.path,
new TextEncoder().encode(JSON.stringify(data)),
{compression: "lz4"});
- await promiseStartupManager(false);
+ await promiseStartupManager();
BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
BootstrapMonitor.checkAddonStarted(ID1, "1.0");
BootstrapMonitor.checkAddonInstalled(ID2, "1.0");
BootstrapMonitor.checkAddonStarted(ID2, "1.0");
});
--- a/toolkit/mozapps/extensions/test/xpcshell/test_corrupt.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_corrupt.js
@@ -248,17 +248,17 @@ add_task(async function test_after_resta
add_task(async function test_after_corruption() {
// Shutdown and replace the database with a corrupt file (a directory
// serves this purpose). On startup the add-ons manager won't rebuild
// because there is a file there still.
gExtensionsJSON.remove(true);
gExtensionsJSON.create(Ci.nsIFile.DIRECTORY_TYPE, FileUtils.PERMS_DIRECTORY);
- await promiseStartupManager(false);
+ await promiseStartupManager();
await new Promise(resolve => {
Services.obs.addObserver(function listener() {
Services.obs.removeObserver(listener, "xpi-database-loaded");
resolve();
}, "xpi-database-loaded");
Services.obs.notifyObservers(null, "sessionstore-windows-restored");
});
@@ -270,17 +270,17 @@ add_task(async function test_after_corru
checkAddon(id, addons.get(id),
Object.assign({}, addon.desiredState, addon.afterCorruption));
}
await Assert.rejects(promiseShutdownManager());
});
add_task(async function test_after_second_restart() {
- await promiseStartupManager(false);
+ await promiseStartupManager();
info("Test add-on state after second restart");
let addons = await getAddons(IDS);
for (let [id, addon] of Object.entries(ADDONS)) {
checkAddon(id, addons.get(id),
Object.assign({}, addon.desiredState, addon.afterSecondRestart));
}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_dictionary.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_dictionary.js
@@ -217,17 +217,17 @@ add_task(async function test_2() {
ok(addon.userDisabled);
ok(!addon.isActive);
});
// Test that restarting doesn't accidentally re-enable
add_task(async function test_3() {
await promiseShutdownManager();
ok(!HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
- await promiseStartupManager(false);
+ await promiseStartupManager();
ok(!HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
do_check_not_in_crash_annotation(ID_DICT, "1.0");
let addon = await AddonManager.getAddonByID(ID_DICT);
notEqual(addon, null);
equal(addon.version, "1.0");
ok(!addon.appDisabled);
@@ -268,17 +268,17 @@ add_task(async function test_4() {
// Tests that a restart shuts down and restarts the add-on
add_task(async function test_5() {
await promiseShutdownManager();
ok(!HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
do_check_not_in_crash_annotation(ID_DICT, "1.0");
- await promiseStartupManager(false);
+ await promiseStartupManager();
ok(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
do_check_in_crash_annotation(ID_DICT, "1.0");
let addon = await AddonManager.getAddonByID(ID_DICT);
notEqual(addon, null);
equal(addon.version, "1.0");
ok(!addon.appDisabled);
@@ -315,46 +315,46 @@ add_task(async function test_7() {
equal(addon, null);
});
// Test that a bootstrapped extension dropped into the profile loads properly
// on startup and doesn't cause an EM restart
add_task(async function test_8() {
await promiseShutdownManager();
await AddonTestUtils.manuallyInstall(XPI_DICT);
- await promiseStartupManager(false);
+ await promiseStartupManager();
let addon = await AddonManager.getAddonByID(ID_DICT);
notEqual(addon, null);
equal(addon.version, "1.0");
ok(!addon.appDisabled);
ok(!addon.userDisabled);
ok(addon.isActive);
ok(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
do_check_in_crash_annotation(ID_DICT, "1.0");
});
// Test that items detected as removed during startup get removed properly
add_task(async function test_9() {
await promiseShutdownManager();
await AddonTestUtils.manuallyUninstall(profileDir, ID_DICT);
- await promiseStartupManager(false);
+ await promiseStartupManager();
let addon = await AddonManager.getAddonByID(ID_DICT);
equal(addon, null);
do_check_not_in_crash_annotation(ID_DICT, "1.0");
});
// Tests that bootstrapped extensions are correctly loaded even if the app is
// upgraded at the same time
add_task(async function test_12() {
await promiseShutdownManager();
await AddonTestUtils.manuallyInstall(XPI_DICT);
- await promiseStartupManager(true);
+ await promiseStartupManager();
let addon = await AddonManager.getAddonByID(ID_DICT);
notEqual(addon, null);
equal(addon.version, "1.0");
ok(!addon.appDisabled);
ok(!addon.userDisabled);
ok(addon.isActive);
ok(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
@@ -374,26 +374,26 @@ add_task(async function test_16() {
ok(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
await promiseShutdownManager();
// Should have stopped
ok(!HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
gAppInfo.inSafeMode = true;
- await promiseStartupManager(false);
+ await promiseStartupManager();
addon = await AddonManager.getAddonByID(ID_DICT);
// Should still be stopped
ok(!HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
ok(!addon.isActive);
await promiseShutdownManager();
gAppInfo.inSafeMode = false;
- await promiseStartupManager(false);
+ await promiseStartupManager();
// Should have started
ok(HunspellEngine.isDictionaryEnabled("ab-CD.dic"));
addon = await AddonManager.getAddonByID(ID_DICT);
addon.uninstall();
});
--- a/toolkit/mozapps/extensions/test/xpcshell/test_distribution.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_distribution.js
@@ -64,17 +64,17 @@ function getInstalledVersion() {
function setOldModificationTime() {
// Make sure the installed extension has an old modification time so any
// changes will be detected
shutdownManager();
let extension = gProfD.clone();
extension.append("extensions");
extension.append("addon1@tests.mozilla.org.xpi");
setExtensionModifiedTime(extension, Date.now() - MAKE_FILE_OLD_DIFFERENCE);
- startupManager(false);
+ startupManager();
}
function run_test() {
do_test_pending();
run_test_1();
}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_general.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_general.js
@@ -30,17 +30,17 @@ async function run_test_1() {
Assert.equal(0, pendingAddons.length);
executeSoon(run_test_2);
}
async function run_test_2() {
shutdownManager();
- startupManager(false);
+ startupManager();
let addons = await AddonManager.getAddonsByTypes(null);
Assert.equal(gCount, addons.length);
executeSoon(run_test_3);
}
async function run_test_3() {
--- a/toolkit/mozapps/extensions/test/xpcshell/test_moved_extension_metadata.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_moved_extension_metadata.js
@@ -112,17 +112,17 @@ add_task(async function test_1() {
Assert.equal(Services.prefs.getIntPref("bootstraptest.active_version"), 0);
userDir.parent.moveTo(gProfD, "extensions3");
userDir = gProfD.clone();
userDir.append("extensions3");
userDir.append(gAppInfo.ID);
Assert.ok(userDir.exists());
- await promiseStartupManager(false);
+ await promiseStartupManager();
let [a1_3, a2_3] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
"addon2@tests.mozilla.org"]);
Assert.notEqual(a1_3, null);
Assert.ok(!a1_3.appDisabled);
Assert.ok(a1_3.isActive);
Assert.ok(isExtensionInBootstrappedList(userDir, a1_3.id));
@@ -148,17 +148,17 @@ add_task(async function test_2() {
await promiseShutdownManager();
userDir.parent.moveTo(gProfD, "extensions4");
userDir = gProfD.clone();
userDir.append("extensions4");
userDir.append(gAppInfo.ID);
Assert.ok(userDir.exists());
- await promiseStartupManager(false);
+ await promiseStartupManager();
let [a1_2, a2_2] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
"addon2@tests.mozilla.org"]);
Assert.notEqual(a1_2, null);
Assert.ok(!a1_2.appDisabled);
Assert.ok(a1_2.isActive);
Assert.ok(isExtensionInBootstrappedList(userDir, a1_2.id));
--- a/toolkit/mozapps/extensions/test/xpcshell/test_overrideblocklist.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_overrideblocklist.js
@@ -178,17 +178,17 @@ add_test(async function test_missing() {
copyToProfile(NEW, NEW_TSTAMP);
incrementAppVersion();
startupManager();
shutdownManager();
let blocklist = FileUtils.getFile(KEY_PROFILEDIR, [FILE_BLOCKLIST]);
blocklist.remove(true);
- startupManager(false);
+ startupManager();
reloadBlocklist();
Assert.ok(!(await isBlocklisted(invalidAddon)));
Assert.ok(!(await isBlocklisted(ancientAddon)));
Assert.ok(await isBlocklisted(oldAddon));
Assert.ok(!(await isBlocklisted(newAddon)));
--- a/toolkit/mozapps/extensions/test/xpcshell/test_signed_updatepref.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_signed_updatepref.js
@@ -117,17 +117,17 @@ add_task(async function() {
Assert.ok(!addon.appDisabled);
Assert.ok(addon.isActive);
Assert.equal(addon.signedState, AddonManager.SIGNEDSTATE_MISSING);
await promiseShutdownManager();
Services.prefs.setBoolPref(PREF_XPI_SIGNATURES_REQUIRED, true);
gAppInfo.version = 5.0;
- startupManager(true);
+ startupManager();
addon = await promiseAddonByID(ID);
Assert.notEqual(addon, null);
Assert.ok(addon.appDisabled);
Assert.ok(!addon.isActive);
Assert.equal(addon.signedState, AddonManager.SIGNEDSTATE_MISSING);
addon.uninstall();
--- a/toolkit/mozapps/extensions/test/xpcshell/test_startup.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_startup.js
@@ -290,17 +290,17 @@ async function run_test_2() {
writeInstallRDFForExtension(addon2, globalDir);
addon2.version = "2.3";
writeInstallRDFForExtension(addon2, userDir);
var dest = profileDir.clone();
dest.append(do_get_expected_addon_name("addon3@tests.mozilla.org"));
dest.remove(true);
gCachePurged = false;
- await promiseStartupManager(false);
+ await promiseStartupManager();
check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_CHANGED, ["addon2@tests.mozilla.org"]);
check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, ["addon3@tests.mozilla.org"]);
check_startup_changes(AddonManager.STARTUP_CHANGE_DISABLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_ENABLED, []);
Assert.ok(gCachePurged);
@@ -355,17 +355,17 @@ async function run_test_3() {
dest.append(do_get_expected_addon_name("addon1@tests.mozilla.org"));
dest.remove(true);
dest = profileDir.clone();
dest.append(do_get_expected_addon_name("addon2@tests.mozilla.org"));
dest.remove(true);
writeInstallRDFForExtension(addon3, profileDir, "addon4@tests.mozilla.org");
gCachePurged = false;
- await promiseStartupManager(false);
+ await promiseStartupManager();
check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_CHANGED, ["addon1@tests.mozilla.org",
"addon2@tests.mozilla.org"]);
check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_DISABLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_ENABLED, []);
Assert.ok(gCachePurged);
@@ -532,17 +532,17 @@ async function run_test_7() {
addon1.version = "1.2";
writeInstallRDFForExtension(addon1, profileDir);
var dest = userDir.clone();
dest.append(do_get_expected_addon_name("addon2@tests.mozilla.org"));
dest.remove(true);
gCachePurged = false;
- await promiseStartupManager(false);
+ await promiseStartupManager();
check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_CHANGED, ["addon1@tests.mozilla.org",
"addon2@tests.mozilla.org"]);
check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_DISABLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_ENABLED, []);
Assert.ok(gCachePurged);
@@ -630,17 +630,17 @@ async function run_test_9() {
dest.remove(true);
dest = globalDir.clone();
dest.append(do_get_expected_addon_name("addon2@tests.mozilla.org"));
dest.remove(true);
addon2.version = "2.4";
writeInstallRDFForExtension(addon2, profileDir);
gCachePurged = false;
- await promiseStartupManager(false);
+ await promiseStartupManager();
check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, ["addon2@tests.mozilla.org"]);
check_startup_changes(AddonManager.STARTUP_CHANGE_CHANGED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_DISABLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_ENABLED, []);
Assert.ok(gCachePurged);
@@ -687,17 +687,17 @@ async function run_test_10() {
var dest = profileDir.clone();
dest.append(do_get_expected_addon_name("addon1@tests.mozilla.org"));
dest.remove(true);
addon1.version = "1.3";
writeInstallRDFForExtension(addon1, userDir);
gCachePurged = false;
- await promiseStartupManager(false);
+ await promiseStartupManager();
check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_CHANGED, ["addon1@tests.mozilla.org"]);
check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_DISABLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_ENABLED, []);
Assert.ok(gCachePurged);
@@ -744,17 +744,17 @@ async function run_test_11() {
var dest = userDir.clone();
dest.append(do_get_expected_addon_name("addon1@tests.mozilla.org"));
dest.remove(true);
dest = profileDir.clone();
dest.append(do_get_expected_addon_name("addon2@tests.mozilla.org"));
dest.remove(true);
gCachePurged = false;
- await promiseStartupManager(false);
+ await promiseStartupManager();
check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_CHANGED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, ["addon1@tests.mozilla.org",
"addon2@tests.mozilla.org"]);
check_startup_changes(AddonManager.STARTUP_CHANGE_DISABLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_ENABLED, []);
Assert.ok(gCachePurged);
@@ -795,17 +795,17 @@ async function run_test_12() {
Services.prefs.setIntPref("extensions.autoDisableScopes", AddonManager.SCOPE_USER);
shutdownManager();
writeInstallRDFForExtension(addon1, profileDir);
writeInstallRDFForExtension(addon2, userDir);
writeInstallRDFForExtension(addon3, globalDir);
- startupManager(false);
+ startupManager();
let [a1, a2, a3] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
"addon2@tests.mozilla.org",
"addon3@tests.mozilla.org"]);
Assert.notEqual(a1, null);
Assert.ok(!a1.userDisabled);
Assert.ok(a1.seen);
Assert.ok(a1.isActive);
@@ -827,26 +827,26 @@ async function run_test_12() {
dest.remove(true);
dest = userDir.clone();
dest.append(do_get_expected_addon_name("addon2@tests.mozilla.org"));
dest.remove(true);
dest = globalDir.clone();
dest.append(do_get_expected_addon_name("addon3@tests.mozilla.org"));
dest.remove(true);
- startupManager(false);
+ startupManager();
shutdownManager();
Services.prefs.setIntPref("extensions.autoDisableScopes", AddonManager.SCOPE_SYSTEM);
writeInstallRDFForExtension(addon1, profileDir);
writeInstallRDFForExtension(addon2, userDir);
writeInstallRDFForExtension(addon3, globalDir);
- startupManager(false);
+ startupManager();
let [a1_2, a2_2, a3_2] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
"addon2@tests.mozilla.org",
"addon3@tests.mozilla.org"]);
Assert.notEqual(a1_2, null);
Assert.ok(!a1_2.userDisabled);
Assert.ok(a1_2.seen);
Assert.ok(a1_2.isActive);
@@ -868,26 +868,26 @@ async function run_test_12() {
dest2.remove(true);
dest2 = userDir.clone();
dest2.append(do_get_expected_addon_name("addon2@tests.mozilla.org"));
dest2.remove(true);
dest2 = globalDir.clone();
dest2.append(do_get_expected_addon_name("addon3@tests.mozilla.org"));
dest2.remove(true);
- startupManager(false);
+ startupManager();
shutdownManager();
Services.prefs.setIntPref("extensions.autoDisableScopes", AddonManager.SCOPE_USER + AddonManager.SCOPE_SYSTEM);
writeInstallRDFForExtension(addon1, profileDir);
writeInstallRDFForExtension(addon2, userDir);
writeInstallRDFForExtension(addon3, globalDir);
- startupManager(false);
+ startupManager();
let [a1_3, a2_3, a3_3] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
"addon2@tests.mozilla.org",
"addon3@tests.mozilla.org"]);
Assert.notEqual(a1_3, null);
Assert.ok(!a1_3.userDisabled);
Assert.ok(a1_3.seen);
Assert.ok(a1_3.isActive);
--- a/toolkit/mozapps/extensions/test/xpcshell/test_system_reset.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_system_reset.js
@@ -195,17 +195,17 @@ add_task(async function test_updated() {
"system3@tests.mozilla.org": {
version: "2.0"
},
}
};
Services.prefs.setCharPref(PREF_SYSTEM_ADDON_SET, JSON.stringify(addonSet));
await overrideBuiltIns({ "system": ["system1@tests.mozilla.org", "system2@tests.mozilla.org", "system3@tests.mozilla.org", "system5@tests.mozilla.org"] });
- startupManager(false);
+ startupManager();
let conditions = [
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: true, version: "2.0" },
{ isUpgrade: true, version: "2.0" },
];
await check_installed(conditions);
@@ -213,34 +213,34 @@ add_task(async function test_updated() {
await promiseShutdownManager();
});
// Entering safe mode should disable the updated system add-ons and use the
// default system add-ons
add_task(async function safe_mode_disabled() {
gAppInfo.inSafeMode = true;
await overrideBuiltIns({ "system": ["system1@tests.mozilla.org", "system2@tests.mozilla.org", "system3@tests.mozilla.org", "system5@tests.mozilla.org"] });
- startupManager(false);
+ startupManager();
let conditions = [
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: false, version: null },
];
await check_installed(conditions);
await promiseShutdownManager();
});
// Leaving safe mode should re-enable the updated system add-ons
add_task(async function normal_mode_enabled() {
gAppInfo.inSafeMode = false;
await overrideBuiltIns({ "system": ["system1@tests.mozilla.org", "system2@tests.mozilla.org", "system3@tests.mozilla.org", "system5@tests.mozilla.org"] });
- startupManager(false);
+ startupManager();
let conditions = [
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: true, version: "2.0" },
{ isUpgrade: true, version: "2.0" },
];
await check_installed(conditions);
@@ -250,17 +250,17 @@ add_task(async function normal_mode_enab
// An additional add-on in the directory should be ignored
add_task(async function test_skips_additional() {
// Copy in the system add-ons
let file = do_get_file("data/system_addons/system4_1.xpi");
file.copyTo(updatesDir, "system4@tests.mozilla.org.xpi");
await overrideBuiltIns({ "system": ["system1@tests.mozilla.org", "system2@tests.mozilla.org", "system3@tests.mozilla.org", "system5@tests.mozilla.org"] });
- startupManager(false);
+ startupManager();
let conditions = [
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: true, version: "2.0" },
{ isUpgrade: true, version: "2.0" },
];
await check_installed(conditions);
@@ -271,17 +271,17 @@ add_task(async function test_skips_addit
// Missing add-on should revert to the default set
add_task(async function test_revert() {
manuallyUninstall(updatesDir, "system2@tests.mozilla.org");
// With the add-on physically gone from disk we won't see uninstall events
BootstrapMonitor.clear("system2@tests.mozilla.org");
await overrideBuiltIns({ "system": ["system1@tests.mozilla.org", "system2@tests.mozilla.org", "system3@tests.mozilla.org", "system5@tests.mozilla.org"] });
- startupManager(false);
+ startupManager();
// With system add-on 2 gone the updated set is now invalid so it reverts to
// the default set which is system add-ons 1 and 2.
let conditions = [
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: false, version: null },
];
@@ -292,17 +292,17 @@ add_task(async function test_revert() {
});
// Putting it back will make the set work again
add_task(async function test_reuse() {
let file = do_get_file("data/system_addons/system2_2.xpi");
file.copyTo(updatesDir, "system2@tests.mozilla.org.xpi");
await overrideBuiltIns({ "system": ["system1@tests.mozilla.org", "system2@tests.mozilla.org", "system3@tests.mozilla.org", "system5@tests.mozilla.org"] });
- startupManager(false);
+ startupManager();
let conditions = [
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: true, version: "2.0" },
{ isUpgrade: true, version: "2.0" },
];
await check_installed(conditions);
@@ -310,17 +310,17 @@ add_task(async function test_reuse() {
await promiseShutdownManager();
});
// Making the pref corrupt should revert to the default set
add_task(async function test_corrupt_pref() {
Services.prefs.setCharPref(PREF_SYSTEM_ADDON_SET, "foo");
await overrideBuiltIns({ "system": ["system1@tests.mozilla.org", "system2@tests.mozilla.org", "system3@tests.mozilla.org", "system5@tests.mozilla.org"] });
- startupManager(false);
+ startupManager();
let conditions = [
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: false, version: null },
];
await check_installed(conditions);
@@ -347,17 +347,17 @@ add_task(async function test_bad_profile
"system3@tests.mozilla.org": {
version: "1.0"
},
}
};
Services.prefs.setCharPref(PREF_SYSTEM_ADDON_SET, JSON.stringify(addonSet));
await overrideBuiltIns({ "system": ["system1@tests.mozilla.org", "system2@tests.mozilla.org", "system3@tests.mozilla.org", "system5@tests.mozilla.org"] });
- startupManager(false);
+ startupManager();
let conditions = [
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: false, version: "1.0" },
{ isUpgrade: false, version: null },
];
await check_installed(conditions);
@@ -416,17 +416,17 @@ add_task(async function test_updated_bad
"system_failed_update@tests.mozilla.org": {
version: "1.0"
},
}
};
Services.prefs.setCharPref(PREF_SYSTEM_ADDON_SET, JSON.stringify(addonSet));
await overrideBuiltIns({ "system": ["system1@tests.mozilla.org", "system2@tests.mozilla.org", "system3@tests.mozilla.org", "system5@tests.mozilla.org"] });
- startupManager(false);
+ startupManager();
let conditions = [
{ isUpgrade: false, version: "1.0" },
];
await check_installed(conditions);
await promiseShutdownManager();
--- a/toolkit/mozapps/extensions/test/xpcshell/test_undouninstall.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_undouninstall.js
@@ -174,17 +174,17 @@ add_task(async function cancelUninstallO
Assert.ok(a1.isActive);
Assert.ok(!a1.userDisabled);
shutdownManager();
Assert.equal(getShutdownReason(ID), APP_SHUTDOWN);
Assert.equal(getShutdownNewVersion(ID), undefined);
- startupManager(false);
+ startupManager();
a1 = await promiseAddonByID("undouninstall1@tests.mozilla.org");
Assert.notEqual(a1, null);
BootstrapMonitor.checkAddonStarted(ID, "1.0");
Assert.equal(getStartupReason(ID), APP_STARTUP);
Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
Assert.ok(a1.isActive);
@@ -252,17 +252,17 @@ add_task(async function reinstallAddonAw
Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
Assert.ok(a1.isActive);
Assert.ok(!a1.userDisabled);
shutdownManager();
Assert.equal(getShutdownReason(ID), APP_SHUTDOWN);
- startupManager(false);
+ startupManager();
a1 = await promiseAddonByID("undouninstall1@tests.mozilla.org");
Assert.notEqual(a1, null);
BootstrapMonitor.checkAddonStarted(ID, "1.0");
Assert.equal(getStartupReason(ID), APP_STARTUP);
Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
Assert.ok(a1.isActive);
--- a/toolkit/mozapps/extensions/test/xpcshell/test_upgrade_incompatible.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_upgrade_incompatible.js
@@ -3,17 +3,17 @@
// unparseable after an application update, the extension becomes
// disabled. (See bug 1439600 for a concrete example of a situation where
// this happened).
add_task(async function test_upgrade_incompatible() {
const ID = "incompatible-upgrade@tests.mozilla.org";
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
- await promiseStartupManager(false);
+ await promiseStartupManager();
let file = createTempWebExtensionFile({
manifest: {
applications: {gecko: {id: ID}},
},
});
await Promise.all([promiseInstallFile(file), promiseWebExtensionStartup()]);
@@ -39,17 +39,17 @@ add_task(async function test_upgrade_inc
await OS.File.move(newfile.path, path);
await promiseSetExtensionModifiedTime(path, timestamp);
Services.obs.notifyObservers(new FileUtils.File(path), "flush-cache-entry");
// Restart. With the change to the DB schema we recompute compatibility.
// With an unparseable manifest the addon should become disabled.
Services.prefs.setIntPref("extensions.databaseSchema", 0);
- await promiseStartupManager(true);
+ await promiseStartupManager();
addon = await promiseAddonByID(ID);
notEqual(addon, null);
equal(addon.appDisabled, true);
await promiseShutdownManager();
file = createTempWebExtensionFile({
@@ -60,17 +60,17 @@ add_task(async function test_upgrade_inc
// swap the old extension back in and check that we don't persist the disabled state forever.
await OS.File.move(file.path, path);
await promiseSetExtensionModifiedTime(path, timestamp);
Services.obs.notifyObservers(new FileUtils.File(path), "flush-cache-entry");
// Restart. With the change to the DB schema we recompute compatibility.
Services.prefs.setIntPref("extensions.databaseSchema", 0);
- await promiseStartupManager(true);
+ await promiseStartupManager();
addon = await promiseAddonByID(ID);
notEqual(addon, null);
equal(addon.appDisabled, false);
await promiseShutdownManager();
});
--- a/toolkit/mozapps/extensions/test/xpcshell/test_webextension_langpack.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_webextension_langpack.js
@@ -120,16 +120,16 @@ add_task(async function() {
]);
Assert.ok(addon.isActive);
await promiseShutdownManager();
gAppInfo.version = "59";
gAppInfo.platformVersion = "59";
- await promiseStartupManager(true);
+ await promiseStartupManager();
addon = await promiseAddonByID(ID);
Assert.ok(!addon.isActive);
Assert.ok(addon.appDisabled);
addon.uninstall();
});