mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-18 06:45:33 +00:00
Bug 553791: Add an onExternalInstall event to signal the start of installs with no associated AddonInstall. r=robstrong
This commit is contained in:
parent
785647175f
commit
4f74be5c8c
@ -516,8 +516,11 @@ function _setCurrentTheme(aData, aLocal) {
|
||||
|
||||
if (aData) {
|
||||
let theme = LightweightThemeManager.getUsedTheme(aData.id);
|
||||
// TODO detect if it is an install and act accordingly
|
||||
if (!theme) {
|
||||
var wrapper = new AddonWrapper(aData);
|
||||
AddonManagerPrivate.callInstallListeners("onExternalInstall", null,
|
||||
wrapper, null, false);
|
||||
AddonManagerPrivate.callAddonListeners("onInstalling", wrapper, false);
|
||||
}
|
||||
let current = LightweightThemeManager.currentTheme;
|
||||
|
@ -321,7 +321,6 @@ const AddonListener = {
|
||||
onEnabled: function(addon) {
|
||||
let [event, expectedRestart] = getExpectedEvent(addon.id);
|
||||
do_check_eq("onEnabled", event);
|
||||
do_check_eq(requiresRestart, expectedRestart);
|
||||
do_check_false(hasFlag(addon.permissions, AddonManager.PERM_CAN_ENABLE));
|
||||
},
|
||||
|
||||
@ -359,21 +358,16 @@ const AddonListener = {
|
||||
do_check_eq(requiresRestart, expectedRestart);
|
||||
if (expectedRestart)
|
||||
do_check_true(hasFlag(addon.pendingOperations, AddonManager.PENDING_UNINSTALL));
|
||||
//do_check_false(hasFlag(addon.permissions, AddonManager.PERM_CAN_UNINSTALL));
|
||||
},
|
||||
|
||||
onUninstalled: function(addon) {
|
||||
let [event, expectedRestart] = getExpectedEvent(addon.id);
|
||||
do_check_eq("onUninstalled", event);
|
||||
do_check_eq(requiresRestart, expectedRestart);
|
||||
do_check_false(hasFlag(addon.permissions, AddonManager.PERM_CAN_UNINSTALL));
|
||||
},
|
||||
|
||||
onOperationCancelled: function(addon) {
|
||||
let [event, expectedRestart] = getExpectedEvent(addon.id);
|
||||
do_check_eq("onOperationCancelled", event);
|
||||
do_check_eq(requiresRestart, expectedRestart);
|
||||
do_check_eq(addon.pendingOperations, 0);
|
||||
}
|
||||
};
|
||||
|
||||
@ -418,6 +412,13 @@ const InstallListener = {
|
||||
do_check_eq(install.state, AddonManager.STATE_INSTALL_FAILED);
|
||||
do_check_eq("onInstallFailed", gExpectedInstalls.shift());
|
||||
gNext(install);
|
||||
},
|
||||
|
||||
onExternalInstall: function(addon, existingAddon, requiresRestart) {
|
||||
do_check_eq("onExternalInstall", gExpectedInstalls.shift());
|
||||
do_check_false(requiresRestart);
|
||||
if (existingAddon)
|
||||
do_check_eq(existingAddon.pendingUpgrade, addon);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -52,6 +52,7 @@ function run_test() {
|
||||
AddonManager.addAddonListener(AddonListener);
|
||||
AddonManager.addInstallListener(InstallListener);
|
||||
AddonManager.addAddonListener(AddonListener);
|
||||
AddonManager.addInstallListener(InstallListener);
|
||||
|
||||
AddonManager.getAddons(["theme1@tests.mozilla.org", "theme2@tests.mozilla.org"], function([t1, t2]) {
|
||||
do_check_neq(t1, null);
|
||||
@ -182,7 +183,9 @@ function run_test_3() {
|
||||
["onDisabling", false],
|
||||
"onDisabled",
|
||||
]
|
||||
});
|
||||
}, [
|
||||
"onExternalInstall"
|
||||
]);
|
||||
|
||||
LightweightThemeManager.currentTheme = {
|
||||
id: "1",
|
||||
@ -250,7 +253,9 @@ function run_test_4() {
|
||||
["onEnabling", false],
|
||||
"onEnabled"
|
||||
]
|
||||
});
|
||||
}, [
|
||||
"onExternalInstall"
|
||||
]);
|
||||
|
||||
LightweightThemeManager.currentTheme = {
|
||||
id: "2",
|
||||
|
Loading…
x
Reference in New Issue
Block a user