--- a/toolkit/mozapps/extensions/internal/AddonTestUtils.jsm
+++ b/toolkit/mozapps/extensions/internal/AddonTestUtils.jsm
@@ -1009,17 +1009,17 @@ var AddonTestUtils = {
});
},
/**
* A helper method to install AddonInstall and wait for completion.
*
* @param {AddonInstall} install
* The add-on to install.
- * @returns {Promise}
+ * @returns {Promise<AddonInstall>}
* Resolves when the install completes, either successfully or
* in failure.
*/
promiseCompleteInstall(install) {
let listener;
return new Promise(resolve => {
listener = {
onDownloadFailed: resolve,
@@ -1029,16 +1029,17 @@ var AddonTestUtils = {
onInstallEnded: resolve,
onInstallPostponed: resolve,
};
install.addListener(listener);
install.install();
}).then(() => {
install.removeListener(listener);
+ return install;
});
},
/**
* A helper method to install a file.
*
* @param {nsIFile} file
* The file to install
--- a/toolkit/mozapps/extensions/test/xpcshell/test_XPIStates.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_XPIStates.js
@@ -193,29 +193,20 @@ add_task(function* uninstall_bootstrap()
});
/*
* Installing a restartless add-on should immediately add it to XPIState
*/
add_task(function* install_bootstrap() {
let XS = getXS();
- let installer = yield new Promise((resolve, reject) =>
- AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
+ let installer = yield promiseInstallFile(
+ do_get_addon("test_bootstrap1_1"));
- let promiseInstalled = new Promise((resolve, reject) => {
- AddonManager.addInstallListener({
- onInstallFailed: reject,
- onInstallEnded: (install, newAddon) => resolve(newAddon)
- });
- });
-
- installer.install();
-
- let newAddon = yield promiseInstalled;
+ let newAddon = installer.addon;
let xState = XS.getAddon("app-profile", newAddon.id);
do_check_true(!!xState);
do_check_true(xState.enabled);
do_check_eq(xState.scanTime, newAddon.updateDate.getTime());
newAddon.uninstall();
});
/*
@@ -223,29 +214,20 @@ add_task(function* install_bootstrap() {
* until after the restart; disable and enable happen immediately so that
* the next restart won't / will scan as necessary on the next restart,
* uninstalling it marks XPIState as disabled immediately
* and removes XPIState after restart.
*/
add_task(function* install_restart() {
let XS = getXS();
- let installer = yield new Promise((resolve, reject) =>
- AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_4"), resolve));
+ let installer = yield promiseInstallFile(
+ do_get_addon("test_bootstrap1_4"));
- let promiseInstalled = new Promise((resolve, reject) => {
- AddonManager.addInstallListener({
- onInstallFailed: reject,
- onInstallEnded: (install, newAddon) => resolve(newAddon)
- });
- });
-
- installer.install();
-
- let newAddon = yield promiseInstalled;
+ let newAddon = installer.addon;
let newID = newAddon.id;
let xState = XS.getAddon("app-profile", newID);
do_check_false(xState);
// Now we restart the add-on manager, and we need to get the XPIState again
// because the add-on manager reloads it.
XS = null;
newAddon = null;
--- a/toolkit/mozapps/extensions/test/xpcshell/test_cache_certdb.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_cache_certdb.js
@@ -72,11 +72,11 @@ function overrideCertDB() {
add_task(function*() {
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
startupManager();
// Once the application is started we shouldn't be able to replace the
// certificate database
overrideCertDB();
- let install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
+ let install = yield AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"));
do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
});
--- a/toolkit/mozapps/extensions/test/xpcshell/test_e10s_restartless.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_e10s_restartless.js
@@ -15,18 +15,17 @@ function getStartupReason(id) {
BootstrapMonitor.init();
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
startupManager();
function* check_normal() {
- let install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
- yield promiseCompleteAllInstalls([install]);
+ let install = yield promiseInstallFile(do_get_addon("test_bootstrap1_1"));
do_check_eq(install.state, AddonManager.STATE_INSTALLED);
do_check_false(hasFlag(install.addon.pendingOperations, AddonManager.PENDING_INSTALL));
BootstrapMonitor.checkAddonInstalled(ID);
BootstrapMonitor.checkAddonStarted(ID);
let addon = yield promiseAddonByID(ID);
do_check_eq(addon, install.addon);
@@ -75,18 +74,17 @@ add_task(function*() {
yield check_normal();
});
// Pref and e10s blocks install
add_task(function*() {
gAppInfo.browserTabsRemoteAutostart = true;
Services.prefs.setBoolPref("extensions.e10sBlocksEnabling", true);
- let install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
- yield promiseCompleteAllInstalls([install]);
+ let install = yield promiseInstallFile(do_get_addon("test_bootstrap1_1"));
do_check_eq(install.state, AddonManager.STATE_INSTALLED);
do_check_true(hasFlag(install.addon.pendingOperations, AddonManager.PENDING_INSTALL));
let addon = yield promiseAddonByID(ID);
do_check_eq(addon, null);
yield promiseRestartManager();
@@ -124,18 +122,17 @@ add_task(function*() {
yield promiseRestartManager();
});
add_task(function*() {
gAppInfo.browserTabsRemoteAutostart = true;
Services.prefs.setBoolPref("extensions.e10sBlocksEnabling", true);
- let install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
- yield promiseCompleteAllInstalls([install]);
+ let install = yield promiseInstallFile(do_get_addon("test_bootstrap1_1"));
do_check_eq(install.state, AddonManager.STATE_INSTALLED);
do_check_true(hasFlag(install.addon.pendingOperations, AddonManager.PENDING_INSTALL));
let addon = yield promiseAddonByID(ID);
do_check_eq(addon, null);
yield promiseRestartManager();
@@ -197,19 +194,21 @@ add_task(function*() {
restartManager();
});
add_task(function*() {
gAppInfo.browserTabsRemoteAutostart = true;
Services.prefs.setBoolPref("extensions.e10sBlocksEnabling", true);
- let install1 = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
- let install2 = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap2_1"), resolve));
- yield promiseCompleteAllInstalls([install1, install2]);
+ let [install1, install2] = yield Promise.all([
+ promiseInstallFile(do_get_addon("test_bootstrap1_1")),
+ promiseInstallFile(do_get_addon("test_bootstrap2_1")),
+ ]);
+
do_check_eq(install1.state, AddonManager.STATE_INSTALLED);
do_check_eq(install2.state, AddonManager.STATE_INSTALLED);
do_check_true(hasFlag(install1.addon.pendingOperations, AddonManager.PENDING_INSTALL));
do_check_true(hasFlag(install2.addon.pendingOperations, AddonManager.PENDING_INSTALL));
let addon = yield promiseAddonByID(ID);
let addon2 = yield promiseAddonByID(ID2);
@@ -307,19 +306,20 @@ add_task(function*() {
Services.prefs.setCharPref("extensions.e10s.rollout.policy", "xpcshell-test");
// Both 'bootstrap1' and 'bootstrap2' addons are listed in the allowed policy
// set, so they should install and start normally.
yield check_normal();
// Check that the two add-ons can be installed together correctly as
// check_normal() only perform checks on bootstrap1.
- let install1 = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
- let install2 = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap2_1"), resolve));
- yield promiseCompleteAllInstalls([install1, install2]);
+ let [install1, install2] = yield Promise.all([
+ promiseInstallFile(do_get_addon("test_bootstrap1_1")),
+ promiseInstallFile(do_get_addon("test_bootstrap2_1")),
+ ]);
do_check_eq(install1.state, AddonManager.STATE_INSTALLED);
do_check_eq(install2.state, AddonManager.STATE_INSTALLED);
do_check_false(hasFlag(install1.addon.pendingOperations, AddonManager.PENDING_INSTALL));
do_check_false(hasFlag(install2.addon.pendingOperations, AddonManager.PENDING_INSTALL));
let addon = yield promiseAddonByID(ID);
let addon2 = yield promiseAddonByID(ID2);
@@ -369,19 +369,20 @@ add_task(function*() {
// The bootstrap1 add-on should install and start correctly, but bootstrap2 should not.
addon = yield promiseAddonByID(ID);
addon.uninstall();
BootstrapMonitor.checkAddonNotStarted(ID);
BootstrapMonitor.checkAddonNotInstalled(ID);
yield promiseRestartManager();
- install1 = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
- install2 = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap2_1"), resolve));
- yield promiseCompleteAllInstalls([install1, install2]);
+ [install1, install2] = yield Promise.all([
+ promiseInstallFile(do_get_addon("test_bootstrap1_1")),
+ promiseInstallFile(do_get_addon("test_bootstrap2_1")),
+ ]);
do_check_eq(install1.state, AddonManager.STATE_INSTALLED);
do_check_eq(install2.state, AddonManager.STATE_INSTALLED);
do_check_false(hasFlag(install1.addon.pendingOperations, AddonManager.PENDING_INSTALL));
do_check_true(hasFlag(install2.addon.pendingOperations, AddonManager.PENDING_INSTALL));
addon = yield promiseAddonByID(ID);
addon2 = yield promiseAddonByID(ID2);
--- a/toolkit/mozapps/extensions/test/xpcshell/test_multiprocessCompatible.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_multiprocessCompatible.js
@@ -47,17 +47,17 @@ function build_test(multiprocessCompatib
response.write(createUpdateRDF(updateData));
});
let expectedMPC = updateMultiprocessCompatible === undefined ?
multiprocessCompatible :
updateMultiprocessCompatible;
let xpifile = createTempXPIFile(addonData);
- let install = yield new Promise(resolve => AddonManager.getInstallForFile(xpifile, resolve));
+ let install = yield AddonManager.getInstallForFile(xpifile);
do_check_eq(install.addon.multiprocessCompatible, !!multiprocessCompatible);
do_check_eq(install.addon.mpcOptedOut, multiprocessCompatible === false)
yield promiseCompleteAllInstalls([install]);
if (!bootstrap) {
yield promiseRestartManager();
do_check_true(isExtensionInAddonsList(profileDir, addonData.id));
do_check_eq(isItemMarkedMPIncompatible(addonData.id), !multiprocessCompatible);
--- a/toolkit/mozapps/extensions/test/xpcshell/test_provider_unsafe_access_shutdown.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_provider_unsafe_access_shutdown.js
@@ -42,21 +42,18 @@ add_task(function* unsafeProviderShutdow
let secondProvider = mockAddonProvider("Mock2");
AddonManagerPrivate.registerProvider(secondProvider);
startupManager();
let shutdownPromise = null;
yield new Promise(resolve => {
secondProvider.shutdownCallback = function() {
- return new Promise(shutdownResolve => {
- AddonManager.getAddonByID("does-not-exist", () => {
- shutdownResolve();
- resolve();
- });
+ return AddonManager.getAddonByID("does-not-exist").then(() => {
+ resolve();
});
};
shutdownPromise = promiseShutdownManager();
});
yield shutdownPromise;
equal(shutdownOrder.join(","), ["Mock1", "Mock2"].join(","), "Mock providers should have shutdown in expected order");
--- a/toolkit/mozapps/extensions/test/xpcshell/test_provider_unsafe_access_startup.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_provider_unsafe_access_startup.js
@@ -35,17 +35,17 @@ function run_test() {
}
add_task(function* unsafeProviderStartup() {
let secondProvider = null;
yield new Promise(resolve => {
let firstProvider = mockAddonProvider("Mock1");
firstProvider.startupCallback = function() {
- AddonManager.getAddonByID("does-not-exist", resolve);
+ resolve(AddonManager.getAddonByID("does-not-exist"));
};
AddonManagerPrivate.registerProvider(firstProvider);
secondProvider = mockAddonProvider("Mock2");
AddonManagerPrivate.registerProvider(secondProvider);
startupManager();
});
--- a/toolkit/mozapps/extensions/test/xpcshell/test_proxies.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_proxies.js
@@ -113,19 +113,17 @@ function* run_proxy_tests() {
}
startupManager();
// Check that all add-ons original sources still exist after invalid
// add-ons have been removed at startup.
checkAddonsExist();
- return new Promise(resolve => {
- AddonManager.getAddonsByIDs(ADDONS.map(addon => addon.id), resolve);
- }).then(addons => {
+ return AddonManager.getAddonsByIDs(ADDONS.map(addon => addon.id)).then(addons => {
try {
for (let [i, addon] of addons.entries()) {
// Ensure that valid proxied add-ons were installed properly on
// platforms that support the installation method.
print(ADDONS[i].id,
ADDONS[i].dirId,
ADDONS[i].dirId != null,
ADDONS[i].type == "symlink");
@@ -208,19 +206,17 @@ function* run_symlink_tests() {
// Make sure that the symlink was created properly.
let file = symlink.clone();
file.append(tempFile.leafName);
file.normalize();
do_check_eq(file.path.replace(/^\/private\//, "/"), tempFile.path);
startupManager();
- return new Promise(resolve => {
- AddonManager.getAddonByID(METADATA.id, resolve);
- }).then(addon => {
+ return AddonManager.getAddonByID(METADATA.id).then(addon => {
do_check_neq(addon, null);
addon.uninstall();
restartManager();
shutdownManager();
// Check that the install directory is gone.
--- a/toolkit/mozapps/extensions/test/xpcshell/test_seen.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_seen.js
@@ -10,35 +10,33 @@ profileDir.append("extensions");
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
startupManager();
// By default disable add-ons from the profile
Services.prefs.setIntPref("extensions.autoDisableScopes", AddonManager.SCOPE_PROFILE);
// Installing an add-on through the API should mark it as seen
add_task(function*() {
- let install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
- yield promiseCompleteAllInstalls([install]);
+ let install = yield promiseInstallFile(do_get_addon("test_bootstrap1_1"));
do_check_eq(install.state, AddonManager.STATE_INSTALLED);
do_check_false(hasFlag(install.addon.pendingOperations, AddonManager.PENDING_INSTALL));
let addon = install.addon;
do_check_eq(addon.version, "1.0");
do_check_false(addon.foreignInstall);
do_check_true(addon.seen);
yield promiseRestartManager();
addon = yield promiseAddonByID(ID);
do_check_false(addon.foreignInstall);
do_check_true(addon.seen);
// Installing an update should retain that
- install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_2"), resolve));
- yield promiseCompleteAllInstalls([install]);
+ install = yield promiseInstallFile(do_get_addon("test_bootstrap1_2"));
do_check_eq(install.state, AddonManager.STATE_INSTALLED);
do_check_false(hasFlag(install.addon.pendingOperations, AddonManager.PENDING_INSTALL));
addon = install.addon;
do_check_eq(addon.version, "2.0");
do_check_false(addon.foreignInstall);
do_check_true(addon.seen);
@@ -104,18 +102,17 @@ add_task(function*() {
yield promiseRestartManager();
addon = yield promiseAddonByID(ID);
do_check_true(addon.foreignInstall);
do_check_false(addon.seen);
// Updating through the API shouldn't change the state
- let install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_2"), resolve));
- yield promiseCompleteAllInstalls([install]);
+ let install = yield promiseInstallFile(do_get_addon("test_bootstrap1_2"));
do_check_eq(install.state, AddonManager.STATE_INSTALLED);
do_check_false(hasFlag(install.addon.pendingOperations, AddonManager.PENDING_INSTALL));
addon = install.addon;
do_check_true(addon.foreignInstall);
do_check_false(addon.seen);
yield promiseRestartManager();
@@ -185,18 +182,17 @@ add_task(function*() {
yield promiseRestartManager();
addon = yield promiseAddonByID(ID);
do_check_true(addon.foreignInstall);
do_check_true(addon.seen);
// Updating through the API shouldn't change the state
- let install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_2"), resolve));
- yield promiseCompleteAllInstalls([install]);
+ let install = yield promiseInstallFile(do_get_addon("test_bootstrap1_2"));
do_check_eq(install.state, AddonManager.STATE_INSTALLED);
do_check_false(hasFlag(install.addon.pendingOperations, AddonManager.PENDING_INSTALL));
addon = install.addon;
do_check_true(addon.foreignInstall);
do_check_true(addon.seen);
yield promiseRestartManager();
--- a/toolkit/mozapps/extensions/test/xpcshell/test_signed_install.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_signed_install.js
@@ -70,19 +70,17 @@ function createBrokenAddonRemove(file) {
zipW.open(brokenFile, FileUtils.MODE_RDWR | FileUtils.MODE_APPEND);
zipW.removeEntry("test.txt", false);
zipW.close();
return brokenFile;
}
function createInstall(url) {
- return new Promise(resolve => {
- AddonManager.getInstallForURL(url, resolve, "application/x-xpinstall");
- });
+ return AddonManager.getInstallForURL(url, null, "application/x-xpinstall");
}
function serveUpdateRDF(leafName) {
gServer.registerPathHandler("/update.rdf", function(request, response) {
let updateData = {};
updateData[ID] = [{
version: "2.0",
targetApplications: [{
--- a/toolkit/mozapps/extensions/test/xpcshell/test_signed_long.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_signed_long.js
@@ -29,21 +29,17 @@ add_task(function* test_working() {
do_check_true(addon.signedState > AddonManager.SIGNEDSTATE_MISSING);
addon.uninstall();
}
});
// Checks the cases that should be broken
add_task(function* test_broken() {
- function promiseInstallForFile(file) {
- return new Promise(resolve => AddonManager.getInstallForFile(file, resolve));
- }
-
- let promises = [promiseInstallForFile(do_get_file(DATA + "long_63_hash.xpi")),
- promiseInstallForFile(do_get_file(DATA + "long_64_hash.xpi"))];
+ let promises = [AddonManager.getInstallForFile(do_get_file(DATA + "long_63_hash.xpi")),
+ AddonManager.getInstallForFile(do_get_file(DATA + "long_64_hash.xpi"))];
let installs = yield Promise.all(promises);
for (let install of installs) {
do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
do_check_eq(install.error, AddonManager.ERROR_CORRUPT_FILE);
}
});
--- a/toolkit/mozapps/extensions/test/xpcshell/test_signed_multi.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_signed_multi.js
@@ -10,19 +10,17 @@ const DATA = "data/signing_checks/";
const ADDONS = {
"multi_signed.xpi": 0,
"multi_badid.xpi": AddonManager.ERROR_CORRUPT_FILE,
"multi_broken.xpi": AddonManager.ERROR_CORRUPT_FILE,
"multi_unsigned.xpi": AddonManager.ERROR_SIGNEDSTATE_REQUIRED,
};
function createInstall(filename) {
- return new Promise(resolve => {
- AddonManager.getInstallForFile(do_get_file(DATA + filename), resolve, "application/x-xpinstall");
- });
+ return AddonManager.getInstallForFile(do_get_file(DATA + filename), null, "application/x-xpinstall");
}
function run_test() {
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "4", "4");
startupManager();
run_next_test();
}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_switch_os.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_switch_os.js
@@ -11,18 +11,17 @@ BootstrapMonitor.init();
const profileDir = gProfD.clone();
profileDir.append("extensions");
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
add_task(function*() {
startupManager();
- let install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
- yield promiseCompleteAllInstalls([install]);
+ yield promiseInstallFile(do_get_addon("test_bootstrap1_1"));
let addon = yield promiseAddonByID(ID);
do_check_neq(addon, null);
BootstrapMonitor.checkAddonStarted(ID);
do_check_false(addon.userDisabled);
do_check_true(addon.isActive);
--- a/toolkit/mozapps/extensions/test/xpcshell/test_update.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_update.js
@@ -1172,19 +1172,17 @@ for (let test of testParams) {
do_execute_soon(() => {
restartManager();
run_next_test()
});
});
}
add_task(function* cleanup() {
- let addons = yield new Promise(resolve => {
- AddonManager.getAddonsByTypes(["extension"], resolve);
- });
+ let addons = yield AddonManager.getAddonsByTypes(["extension"]);
for (let addon of addons)
addon.uninstall();
yield promiseRestartManager();
shutdownManager();
--- a/toolkit/mozapps/extensions/test/xpcshell/test_update_strictcompat.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_update_strictcompat.js
@@ -1018,19 +1018,17 @@ for (let test of testParams) {
onUpdateFinished: function() {
run_next_test();
}
}, AddonManager.UPDATE_WHEN_USER_REQUESTED);
});
});
add_task(function* cleanup() {
- let addons = yield new Promise(resolve => {
- AddonManager.getAddonsByTypes(["extension"], resolve);
- });
+ let addons = yield AddonManager.getAddonsByTypes(["extension"]);
for (let addon of addons)
addon.uninstall();
yield promiseRestartManager();
shutdownManager();
--- a/toolkit/mozapps/extensions/test/xpcshell/test_update_webextensions.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_update_webextensions.js
@@ -222,27 +222,24 @@ add_task(function* checkUpdateToRDF() {
add_task(function* checkIllegalUpdateURL() {
const URLS = ["chrome://browser/content/",
"data:text/json,...",
"javascript:;",
"/"];
for (let url of URLS) {
let { messages } = yield promiseConsoleOutput(() => {
- return new Promise((resolve, reject) => {
- let addonFile = createTempWebExtensionFile({
- manifest: { applications: { gecko: { update_url: url } } },
- });
+ let addonFile = createTempWebExtensionFile({
+ manifest: { applications: { gecko: { update_url: url } } },
+ });
- AddonManager.getInstallForFile(addonFile, install => {
- Services.obs.notifyObservers(addonFile, "flush-cache-entry", null);
+ return AddonManager.getInstallForFile(addonFile).then(install => {
+ Services.obs.notifyObservers(addonFile, "flush-cache-entry", null);
- if (install && install.state == AddonManager.STATE_DOWNLOAD_FAILED)
- resolve();
- reject(new Error("Unexpected state: " + (install && install.state)))
- });
+ if (!install || install.state != AddonManager.STATE_DOWNLOAD_FAILED)
+ throw new Error("Unexpected state: " + (install && install.state));
});
});
ok(messages.some(msg => /Access denied for URL|may not load or link to|is not a valid URL/.test(msg)),
"Got checkLoadURI error");
}
});
--- a/toolkit/mozapps/extensions/test/xpcshell/test_webextension.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_webextension.js
@@ -312,17 +312,17 @@ add_task(function* test_experiments_depe
manifest: {
applications: {gecko: {id: "meh@experiment"}},
"permissions": ["experiments.meh"],
},
});
yield promiseInstallAllFiles([addonFile]);
- let addon = yield new Promise(resolve => AddonManager.getAddonByID("meh@experiment", resolve));
+ let addon = yield AddonManager.getAddonByID("meh@experiment");
deepEqual(addon.dependencies, ["meh@experiments.addons.mozilla.org"],
"Addon should have the expected dependencies");
equal(addon.appDisabled, true, "Add-on should be app disabled due to missing dependencies");
addon.uninstall();
});
@@ -339,21 +339,21 @@ add_task(function* test_experiments_api(
id: extensionId,
type: 256,
version: "0.1",
name: "Meh API",
});
yield promiseInstallAllFiles([addonFile]);
- let addons = yield new Promise(resolve => AddonManager.getAddonsByTypes(["apiextension"], resolve));
+ let addons = yield AddonManager.getAddonsByTypes(["apiextension"]);
let addon = addons.pop();
equal(addon.id, extensionId, "Add-on should be installed as an API extension");
- addons = yield new Promise(resolve => AddonManager.getAddonsByTypes(["extension"], resolve));
+ addons = yield AddonManager.getAddonsByTypes(["extension"]);
equal(addons.pop().id, extensionId, "Add-on type should be aliased to extension");
addon.uninstall();
});
add_task(function* developerShouldOverride() {
let addon = yield promiseInstallWebExtension({
manifest: {
--- a/toolkit/mozapps/extensions/test/xpcshell/test_webextension_install.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_webextension_install.js
@@ -117,19 +117,18 @@ add_task(function* test_multiple_no_id_e
let extension2 = ExtensionTestUtils.loadExtension({
manifest: manifest,
useAddonManager: "temporary",
});
yield Promise.all([extension1.startup(), extension2.startup()]);
- const allAddons = yield new Promise(resolve => {
- AddonManager.getAllAddons(addons => resolve(addons));
- });
+ const allAddons = yield AddonManager.getAllAddons();
+
do_print(`Found these add-ons: ${allAddons.map(a => a.name).join(", ")}`);
const filtered = allAddons.filter(addon => addon.name === manifest.name);
// Make sure we have two add-ons by the same name.
equal(filtered.length, 2, "Two add-ons are installed with the same name");
yield extension1.unload();
yield extension2.unload();
AddonTestUtils.useRealCertChecks = false;
@@ -485,19 +484,17 @@ add_task(function* test_permissions() {
manifest_version: 2,
version: "1.0",
permissions: ["tabs", "storage", "https://*.example.com/*", "<all_urls>", "experiments.test"],
};
let xpi = ExtensionTestCommon.generateXPI({manifest});
- let install = yield new Promise(resolve => {
- AddonManager.getInstallForFile(xpi, resolve);
- });
+ let install = yield AddonManager.getInstallForFile(xpi);
let perminfo;
install._permHandler = info => {
perminfo = info;
return Promise.resolve();
};
yield promiseCompleteInstall(install);
@@ -525,19 +522,17 @@ add_task(function* test_permissions() {
manifest_version: 2,
version: "1.0",
permissions: ["webRequestBlocking"],
};
let xpi = ExtensionTestCommon.generateXPI({manifest});
- let install = yield new Promise(resolve => {
- AddonManager.getInstallForFile(xpi, resolve);
- });
+ let install = yield AddonManager.getInstallForFile(xpi);
let perminfo;
install._permHandler = info => {
perminfo = info;
return Promise.reject();
};
yield promiseCompleteInstall(install);