Bug 856131 - Regression: No Android home-screen shortcut created on app install. r=fabrice

This commit is contained in:
James Hugman 2013-05-09 08:20:37 -07:00
Родитель 9ff64bd03f
Коммит ce3b6d686e
2 изменённых файлов: 30 добавлений и 16 удалений

Просмотреть файл

@ -1869,7 +1869,7 @@ this.DOMApplicationRegistry = {
confirmInstall: function(aData, aFromSync, aProfileDir, confirmInstall: function(aData, aFromSync, aProfileDir,
aOfflineCacheObserver, aOfflineCacheObserver,
aZipDownloadSuccessCallback) { aInstallSuccessCallback) {
let isReinstall = false; let isReinstall = false;
let app = aData.app; let app = aData.app;
app.removable = true; app.removable = true;
@ -1978,15 +1978,23 @@ this.DOMApplicationRegistry = {
offlineCacheObserver: aOfflineCacheObserver offlineCacheObserver: aOfflineCacheObserver
} }
if (!aFromSync) let postFirstInstallTask = (function () {
this._saveApps((function() { // Only executed on install not involving sync.
this.broadcastMessage("Webapps:AddApp", { id: id, app: appObject }); this.broadcastMessage("Webapps:AddApp", { id: id, app: appObject });
this.broadcastMessage("Webapps:Install:Return:OK", aData); this.broadcastMessage("Webapps:Install:Return:OK", aData);
Services.obs.notifyObservers(this, "webapps-sync-install", appNote); Services.obs.notifyObservers(this, "webapps-sync-install", appNote);
}).bind(this)); }).bind(this);
if (!aData.isPackage) { if (!aData.isPackage) {
if (!aFromSync) {
this._saveApps((function() {
postFirstInstallTask();
}).bind(this));
}
this.updateAppHandlers(null, app.manifest, app); this.updateAppHandlers(null, app.manifest, app);
if (aInstallSuccessCallback) {
aInstallSuccessCallback(manifest);
}
} }
if (manifest.package_path) { if (manifest.package_path) {
@ -2026,8 +2034,11 @@ this.DOMApplicationRegistry = {
manifestURL: appObject.manifestURL, manifestURL: appObject.manifestURL,
app: app, app: app,
manifest: aManifest }); manifest: aManifest });
if (aZipDownloadSuccessCallback) { if (!aFromSync) {
aZipDownloadSuccessCallback(aManifest); postFirstInstallTask();
}
if (aInstallSuccessCallback) {
aInstallSuccessCallback(aManifest);
} }
}).bind(this)); }).bind(this));
}).bind(this)); }).bind(this));

Просмотреть файл

@ -6225,13 +6225,16 @@ var WebappsUI = {
origin: aData.app.origin, origin: aData.app.origin,
iconURL: fullsizeIcon iconURL: fullsizeIcon
}); });
let message = Strings.browser.GetStringFromName("webapps.alertSuccess"); if (!!aData.isPackage) {
let alerts = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService); // For packaged apps, put a notification in the notification bar.
alerts.showAlertNotification("drawable://alert_app", manifest.name, message, true, "", { let message = Strings.browser.GetStringFromName("webapps.alertSuccess");
observe: function () { let alerts = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
self.openURL(aData.app.manifestURL, aData.app.origin); alerts.showAlertNotification("drawable://alert_app", manifest.name, message, true, "", {
} observe: function () {
}, "webapp"); self.openURL(aData.app.manifestURL, aData.app.origin);
}
}, "webapp");
}
} catch(ex) { } catch(ex) {
console.log(ex); console.log(ex);
} }