--- a/toolkit/mozapps/extensions/addonManager.js
+++ b/toolkit/mozapps/extensions/addonManager.js
@@ -65,26 +65,26 @@ amManager.prototype = {
case "message-manager-close":
case "message-manager-disconnect":
this.childClosed(aSubject);
break;
}
},
- async installAddonFromWebpage(aMimetype, aBrowser, aInstallingPrincipal,
- aUri, aHash, aName, aIcon, aCallback) {
+ installAddonFromWebpage(aMimetype, aBrowser, aInstallingPrincipal,
+ aUri, aHash, aName, aIcon, aCallback) {
let retval = true;
if (!AddonManager.isInstallAllowed(aMimetype, aInstallingPrincipal)) {
aCallback = null;
retval = false;
}
- let aInstall = await AddonManager.getInstallForURL(aUri, null, aMimetype, aHash, aName, aIcon, null, aBrowser);
- function callCallback(uri, status) {
+ AddonManager.getInstallForURL(aUri, null, aMimetype, aHash, aName, aIcon, null, aBrowser).then(aInstall => {
+ function callCallback(uri, status) {
try {
aCallback.onInstallEnded(uri, status);
} catch (e) {
Cu.reportError(e);
}
}
if (!aInstall) {
@@ -111,16 +111,17 @@ amManager.prototype = {
onInstallEnded(aInstall, aStatus) {
callCallback(aUri, SUCCESS);
}
});
}
AddonManager.installAddonFromWebpage(aMimetype, aBrowser, aInstallingPrincipal, aInstall);
+ });
return retval;
},
notify(aTimer) {
AddonManagerPrivate.backgroundUpdateTimerHandler();
},
--- a/toolkit/mozapps/extensions/test/xpcshell/test_startup.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_startup.js
@@ -138,23 +138,21 @@ async function run_test() {
check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_DISABLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_ENABLED, []);
Assert.ok(!gExtensionsJSON.exists());
Assert.ok(!gAddonStartup.exists());
- let [a1, a2, a3, a4, a5, a6, a7] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org",
- "addon5@tests.mozilla.org",
- "addon6@tests.mozilla.org",
- "addon7@tests.mozilla.org"]);
+ let [a1, a2, a3, a4, a5] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
+ "addon2@tests.mozilla.org",
+ "addon3@tests.mozilla.org",
+ "addon4@tests.mozilla.org",
+ "addon5@tests.mozilla.org"]);
Assert.equal(a1, null);
do_check_not_in_crash_annotation(addon1.id, addon1.version);
Assert.equal(a2, null);
do_check_not_in_crash_annotation(addon2.id, addon2.version);
Assert.equal(a3, null);
do_check_not_in_crash_annotation(addon3.id, addon3.version);
Assert.equal(a4, null);
Assert.equal(a5, null);
@@ -423,21 +421,18 @@ async function run_test_4() {
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, ["addon1@tests.mozilla.org"]);
check_startup_changes(AddonManager.STARTUP_CHANGE_DISABLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_ENABLED, []);
Assert.ok(gCachePurged);
- let [a1, a2, a3, a4, a5] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org",
- "addon5@tests.mozilla.org"]);
+ let [a1, a2] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
+ "addon2@tests.mozilla.org"]);
Assert.equal(a1, null);
Assert.ok(!isExtensionInBootstrappedList(profileDir, "addon1@tests.mozilla.org"));
Assert.ok(!isExtensionInBootstrappedList(userDir, "addon1@tests.mozilla.org"));
Assert.notEqual(a2, null);
Assert.equal(a2.id, "addon2@tests.mozilla.org");
Assert.equal(a2.version, "2.2");
Assert.ok(!isExtensionInBootstrappedList(profileDir, a2.id));
@@ -460,21 +455,18 @@ async function run_test_5() {
check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, ["addon1@tests.mozilla.org"]);
check_startup_changes(AddonManager.STARTUP_CHANGE_CHANGED, ["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);
- let [a1, a2, a3, a4, a5] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org",
- "addon5@tests.mozilla.org"]);
+ let [a1, a2] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
+ "addon2@tests.mozilla.org"]);
Assert.notEqual(a1, null);
Assert.equal(a1.id, "addon1@tests.mozilla.org");
Assert.equal(a1.version, "1.1");
Assert.ok(!isExtensionInBootstrappedList(profileDir, a1.id));
Assert.ok(isExtensionInBootstrappedList(userDir, a1.id));
Assert.ok(!hasFlag(a1.permissions, AddonManager.PERM_CAN_UNINSTALL));
Assert.ok(!hasFlag(a1.permissions, AddonManager.PERM_CAN_UPGRADE));
do_check_in_crash_annotation(addon1.id, a1.version);
@@ -503,21 +495,18 @@ async function run_test_6() {
check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
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);
- let [a1, a2, a3, a4, a5] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org",
- "addon5@tests.mozilla.org"]);
+ let [a1, a2] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
+ "addon2@tests.mozilla.org"]);
Assert.notEqual(a1, null);
Assert.equal(a1.id, "addon1@tests.mozilla.org");
Assert.equal(a1.version, "1.1");
Assert.ok(!isExtensionInBootstrappedList(profileDir, a1.id));
Assert.ok(isExtensionInBootstrappedList(userDir, a1.id));
Assert.ok(!hasFlag(a1.permissions, AddonManager.PERM_CAN_UNINSTALL));
Assert.ok(!hasFlag(a1.permissions, AddonManager.PERM_CAN_UPGRADE));
do_check_in_crash_annotation(addon1.id, a1.version);
@@ -605,21 +594,18 @@ async function run_test_8() {
check_startup_changes(AddonManager.STARTUP_CHANGE_INSTALLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_CHANGED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_UNINSTALLED, ["addon2@tests.mozilla.org"]);
check_startup_changes(AddonManager.STARTUP_CHANGE_DISABLED, []);
check_startup_changes(AddonManager.STARTUP_CHANGE_ENABLED, []);
Assert.ok(gCachePurged);
- let [a1, a2, a3, a4, a5] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org",
- "addon5@tests.mozilla.org"]);
+ let [a1, a2] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
+ "addon2@tests.mozilla.org"]);
Assert.notEqual(a1, null);
Assert.equal(a1.id, "addon1@tests.mozilla.org");
Assert.equal(a1.version, "1.2");
Assert.ok(isExtensionInBootstrappedList(profileDir, a1.id));
Assert.ok(!isExtensionInBootstrappedList(userDir, a1.id));
Assert.ok(hasFlag(a1.permissions, AddonManager.PERM_CAN_UNINSTALL));
Assert.ok(hasFlag(a1.permissions, AddonManager.PERM_CAN_UPGRADE));
do_check_in_crash_annotation(addon1.id, a1.version);
@@ -811,21 +797,19 @@ async function run_test_12() {
shutdownManager();
writeInstallRDFForExtension(addon1, profileDir);
writeInstallRDFForExtension(addon2, userDir);
writeInstallRDFForExtension(addon3, globalDir);
startupManager(false);
- let [a1, a2, a3, a4, a5] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org",
- "addon5@tests.mozilla.org"]);
+ 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);
Assert.notEqual(a2, null);
Assert.ok(a2.userDisabled);
Assert.ok(!a2.seen);
@@ -854,21 +838,19 @@ async function run_test_12() {
Services.prefs.setIntPref("extensions.autoDisableScopes", AddonManager.SCOPE_SYSTEM);
writeInstallRDFForExtension(addon1, profileDir);
writeInstallRDFForExtension(addon2, userDir);
writeInstallRDFForExtension(addon3, globalDir);
startupManager(false);
- let [a1_2, a2_2, a3_2, a4_2, a5_2] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org",
- "addon5@tests.mozilla.org"]);
+ 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);
Assert.notEqual(a2_2, null);
Assert.ok(!a2_2.userDisabled);
Assert.ok(a2_2.seen);
@@ -897,21 +879,19 @@ async function run_test_12() {
Services.prefs.setIntPref("extensions.autoDisableScopes", AddonManager.SCOPE_USER + AddonManager.SCOPE_SYSTEM);
writeInstallRDFForExtension(addon1, profileDir);
writeInstallRDFForExtension(addon2, userDir);
writeInstallRDFForExtension(addon3, globalDir);
startupManager(false);
- let [a1_3, a2_3, a3_3, a4_3, a5_3] = await AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org",
- "addon5@tests.mozilla.org"]);
+ 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);
Assert.notEqual(a2_3, null);
Assert.ok(a2_3.userDisabled);
Assert.ok(!a2_3.seen);