mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Bug 553868: Add an onNoUpdateAvailable event. r=robstrong
This commit is contained in:
parent
356b365174
commit
c09f6bc889
@ -3123,9 +3123,10 @@ function AddonInstall(callback, installLocation, url, hash, name, type, iconURL,
|
||||
// TODO Should we send some event here?
|
||||
this.state = AddonManager.STATE_CHECKING;
|
||||
new UpdateChecker(self.addon, {
|
||||
onUpdateFinished: function(addon, status) {
|
||||
onUpdateFinished: function(addon) {
|
||||
XPIProvider.installs.push(self);
|
||||
AddonManagerPrivate.callInstallListeners("onNewInstall", self.listeners,
|
||||
AddonManagerPrivate.callInstallListeners("onNewInstall",
|
||||
self.listeners,
|
||||
self.wrapper);
|
||||
|
||||
callback(self);
|
||||
@ -3484,7 +3485,7 @@ AddonInstall.prototype = {
|
||||
this.state = AddonManager.STATE_CHECKING;
|
||||
let self = this;
|
||||
new UpdateChecker(this.addon, {
|
||||
onUpdateFinished: function(addon, status) {
|
||||
onUpdateFinished: function(addon) {
|
||||
self.downloadCompleted();
|
||||
}
|
||||
}, AddonManager.UPDATE_WHEN_ADDON_INSTALLED);
|
||||
@ -3863,19 +3864,30 @@ UpdateChecker.prototype = {
|
||||
if ("onCompatibilityUpdated" in this.listener)
|
||||
this.listener.onCompatibilityUpdated(createWrapper(this.addon));
|
||||
}
|
||||
if ("onUpdateAvailable" in this.listener) {
|
||||
let update = AUC.getNewestCompatibleUpdate(updates, this.appVersion,
|
||||
this.platformVersion);
|
||||
if (update && Services.vc.compare(this.addon.version, update.version) < 0) {
|
||||
|
||||
let update = AUC.getNewestCompatibleUpdate(updates,
|
||||
this.appVersion,
|
||||
this.platformVersion);
|
||||
if (update && Services.vc.compare(this.addon.version, update.version) < 0) {
|
||||
if ("onUpdateAvailable" in this.listener) {
|
||||
let self = this;
|
||||
AddonInstall.createUpdate(function(install) {
|
||||
self.listener.onUpdateAvailable(createWrapper(self.addon),
|
||||
install.wrapper);
|
||||
if ("onUpdateFinished" in self.listener)
|
||||
self.listener.onUpdateFinished(createWrapper(self.addon));
|
||||
}, this.addon, update);
|
||||
}
|
||||
else if ("onUpdateFinished" in this.listener) {
|
||||
this.listener.onUpdateFinished(createWrapper(this.addon));
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ("onNoUpdateAvailable" in this.listener)
|
||||
this.listener.onNoUpdateAvailable(createWrapper(this.addon));
|
||||
if ("onUpdateFinished" in this.listener)
|
||||
this.listener.onUpdateFinished(createWrapper(this.addon));
|
||||
}
|
||||
if ("onUpdateFinished" in this.listener)
|
||||
this.listener.onUpdateFinished(createWrapper(this.addon), 0);
|
||||
},
|
||||
|
||||
/**
|
||||
@ -3885,8 +3897,10 @@ UpdateChecker.prototype = {
|
||||
* An error status
|
||||
*/
|
||||
onUpdateCheckError: function UC_onUpdateCheckError(error) {
|
||||
if ("onNoUpdateAvailable" in this.listener)
|
||||
this.listener.onNoUpdateAvailable(createWrapper(this.addon), error);
|
||||
if ("onUpdateFinished" in this.listener)
|
||||
this.listener.onUpdateFinished(createWrapper(this.addon), error);
|
||||
this.listener.onUpdateFinished(createWrapper(this.addon));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -92,9 +92,8 @@ function run_test_1() {
|
||||
install.install();
|
||||
},
|
||||
|
||||
onUpdateFinished: function(addon, status) {
|
||||
do_check_eq(addon, a1);
|
||||
do_check_eq(status, 0);
|
||||
onNoUpdateAvailable: function(addon) {
|
||||
do_throw("Should have seen an update");
|
||||
}
|
||||
}, AddonManager.UPDATE_WHEN_USER_REQUESTED);
|
||||
});
|
||||
@ -157,9 +156,8 @@ function run_test_3() {
|
||||
do_throw("Should not have seen an available update");
|
||||
},
|
||||
|
||||
onUpdateFinished: function(addon, status) {
|
||||
onNoUpdateAvailable: function(addon) {
|
||||
do_check_eq(addon, a2);
|
||||
do_check_eq(status, 0);
|
||||
restartManager(0);
|
||||
check_test_3();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user