Created attachment 8365683 [details] ScreenShots.zip User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:29.0) Gecko/20100101 Firefox/29.0 (Beta/Release) Build ID: 20140126030203 Steps to reproduce: You publish a new version of your App. You go to the marketplace in your device and go to this App details. You cannot see the 'update' action button. Actual results: The 'launch' button doesn't change to the 'update' action. You can see the attached screenshots: Img1...: current version 9 App, about us screen. Img2...: marketplace App details. Button shows 'launch' instead of 'update'. Img3...: marketplace App details shows version 11. Expected results: The 'launch' button should change to 'update'.
Would like to know if there's an API the Marketplace can invoke to force an update (or check for an update) for an installed app (à la Firefox OS's manual "check now" feature for updates). CC'ing Fabrice and Jason for info.
Yes, the marketplace can call app.checkForUpdate() (see https://mxr.mozilla.org/mozilla-central/source/dom/interfaces/apps/nsIDOMApplicationRegistry.idl#55) and then app.download(). However only the system will be able to apply the update by calling mozApps.mgmt.applyDownload(app) (https://mxr.mozilla.org/mozilla-central/source/dom/interfaces/apps/nsIDOMApplicationRegistry.idl#144)
This is a good idea. Another alternative would be to use push notification to notify when an update is available for an app.
Wanted to see if we can get the UI for this and get it done via repoman. Bug 885636 has been open for a long time and partners depend on it. Suggestion: Since the system needs to apply the download, we should have the user request the update so that they can download it, and then have the system install it. the suggestion is to have an "Update" button for each app that needs an update. Each app is checked for updates when the user launches (or possibly opens My Apps Tab?). If an update is found, we should have an update button. Possibly have an "Update All" button. So that button could now be "Launch, Install, or Update"
Mat -- this would be similar to what was explored for notifications. Do you know if we could check for updates for other apps via the same methodology?
We can, and I wrote the marketplace update notification code in a generic way to be able to implement this easily if we wanted to. It should enable us to check for updates *and* download updates for any app. The methods are checkForUpdate(manifestURL) and applyUpdate(manifestULR). If we start using them for apps other than our own, then we might need some fancy progress bar + listening on progress events on the download part, though.
Forgot to mention: the methods are implemented here: https://github.com/mozilla/fireplace/blob/master/src/media/js/installer_direct.js