Closed Bug 710062 Opened 13 years ago Closed 12 years ago

Check that an app is installed before installing it

Categories

(Marketplace Graveyard :: Consumer Pages, defect, P3)

defect

Tracking

(blocking-basecamp:-)

RESOLVED FIXED
2012-10-04
blocking-basecamp -

People

(Reporter: andy+bugzilla, Assigned: cvan)

References

Details

We should be checking that an app is installed before installing it in the JS api. https://developer.mozilla.org/en/Apps/Apps_JavaScript_API/navigator.mozApps.amInstalled There's an amInstalled(..) api that we can call. If it's already installed, we can just show an error message I presume using showError: https://github.com/mozilla/zamboni/blob/master/media/js/zamboni/apps.js#L86
Blocks: 710074
Could we just launch it? Or is that not the expected behavior?
Priority: -- → P3
Dunno, I think that would be fine. There was talk about AMO knowing what apps are installed, in which case the button would say "Launch" not "Install" in that case launching would be even more fine.
Blocks: 718560
No longer blocks: 710074
Jason, Bryan: the latest design I saw shows "Installed" on the button. Is that what we're going with? No way to launch from the marketplace if it's already installed?
Whiteboard: [needs ux]
Blocks: 735202
No longer blocks: 718560
Wil: Actually, I had the same question. Dils explained it to me: "By labeling the button "installed", it does double duty. It provides a call to action to launch the app, while implicitly telling the user this app is already installed." So actually, that button would in fact launch the app.
(In reply to Jason Grlicky [:grlicky] from comment #5) > Wil: Actually, I had the same question. Dils explained it to me: "By > labeling the button "installed", it does double duty. It provides a call to > action to launch the app, while implicitly telling the user this app is > already installed." > > So actually, that button would in fact launch the app. Ah. Over to bill then. Bill - is it possible for the marketplace to know if you have an app installed or not?
Sounds like Anant is the expert here and that the API to list currently installed apps does exist from bug 720415. That brings us to the next question - is it possible to launch the native app from the marketplace?
Looks like we have this https://developer.mozilla.org/en/Apps/Apps_JavaScript_API/navigator.mozApps.amInstalled Seems like we're good to go if you're using Firefox. If you're using the HTML5/JS shim you're SOL until that is implemented there too. Assuming this works, this bug is ready for implementation.
Blocks: 735054
No longer blocks: 735202
Assignee: nobody → cvan
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → 6.5.0
Looks like comment 0 is not addressed completely here. If a user tries to reinstall and installed app, what do we do? Tell them that the app is already installed? Or reinstall it? reopening so that further conversation can happen.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: 6.5.0 → 6.5.2
Target Milestone: 6.5.2 → 6.5.4
(In reply to krupa raj 82[:krupa] from comment #10) > Looks like comment 0 is not addressed completely here. If a user tries to > reinstall and installed app, what do we do? Tell them that the app is > already installed? Or reinstall it? > > reopening so that further conversation can happen. How do they reinstall it - the button says installed?
Blocks: 752013
No longer blocks: 735054
Just to clarify, re-installation of an already installed app is non-destructive as far as the web runtime is concerned, i.e. the install() call will succeed with no errors. If we'd like to raise an error, it has to be done at the marketplace level by calling getInstalled() first and not calling install() if a matching entry was found. This also give you full flexibility regarding which solution you'd like to implement when the user encounters an already installed app on the marketplace and clicks a button: - Launch the app via the launch() method - Reinstall the app by calling install(), will almost always succeed - Raise an error, don't call instal() In all cases, getInstalled() must be called first.
If we decide to throw an error/warning or disallow re-installations (by clicking on the button), I could natively uninstall the app (on Mac/Windows) and never be able to install that app again. We should wait until bug 749033 is addressed before trying to accommodate for this case.
Depends on: 749033
Target Milestone: 2012-05-10 → ---
This is also related to bug 765380.
Blocks: 766201
No longer blocks: 752013
Keywords: uiwanted
Whiteboard: [needs ux]
I'm not sure what's supposed to happen in this bug.
Maybe we should show "Reinstall" instead of "Installed"
Component: Public Pages → Consumer Pages
Product: addons.mozilla.org → Marketplace
QA Contact: web-ui → consumer-pages
Version: unspecified → 1.0
Target Milestone: --- → 2012-07-05
CC'ing Maria for ideas.
blocking-basecamp: --- → ?
(In reply to Chris Van Wiemeersch [:cvan] from comment #17) > CC'ing Maria for ideas. After reading through the full comment thread here I'm still not sure if we have the ability to launch the app from the Marketplace instead of reinstalling it. Chris - I think you said to me once that we can't launch from Marketplace. If I could get the final word on this, I can move forward from there.
The fixes for the dependencies of meta bug 745924 will make it possible for Marketplace to launch the app.
(In reply to Myk Melez [:myk] [@mykmelez] from comment #19) > The fixes for the dependencies of meta bug 745924 will make it possible for > Marketplace to launch the app. Awesome, thanks Myk. Since we have the capability to launch the app from the Marketplace, let's do that. If a user wants to reinstall an app, they have to uninstall it and install it again. This is how it works for desktop applications as well as mobile apps on other platforms and seems like a good standard. I will update the install button states from bug 747144 comment 5 to reflect that.
(In reply to Maria Sandberg [:mushi] from comment #20) > Awesome, thanks Myk. Since we have the capability to launch the app from the > Marketplace, let's do that. If a user wants to reinstall an app, they have > to uninstall it and install it again. Should we disable reinstallation in general or just for our Marketplace?
(In reply to Marco Castelluccio from comment #21) > (In reply to Maria Sandberg [:mushi] from comment #20) > > Awesome, thanks Myk. Since we have the capability to launch the app from the > > Marketplace, let's do that. If a user wants to reinstall an app, they have > > to uninstall it and install it again. > > Should we disable reinstallation in general or just for our Marketplace? I'm not sure I understand what you mean, could you give some more detail? In my mind the act of uninstalling and installing again equals reinstalling.
(In reply to Maria Sandberg [:mushi] from comment #22) > I'm not sure I understand what you mean, could you give some more detail? In > my mind the act of uninstalling and installing again equals reinstalling. Currently a user can reinstall an application without uninstalling it. Should we disallow this behaviour? If yes, only for our Marketplace or for everyone using the mozApps API?
(In reply to Marco Castelluccio from comment #23) > Currently a user can reinstall an application without uninstalling it. > Should we disallow this behaviour? If yes, only for our Marketplace or for > everyone using the mozApps API? From the point of view of the Marketplace there will be no path a user can go to reinstall a currently installed app. If an app is installed, a user can launch it from the Marketplace. If it's not installed, it can be installed. From a design perspective I don't have enough information about all the different use cases of someone using the mozApps API to decide if we should disallow it everywhere or not.
So to conclude: Per bug 747144 comment 12, we say "Open" to launch the app. Yes, Maria?
(In reply to Maria Sandberg [:mushi] from comment #22) > (In reply to Marco Castelluccio from comment #21) > > (In reply to Maria Sandberg [:mushi] from comment #20) > > > Awesome, thanks Myk. Since we have the capability to launch the app from the > > > Marketplace, let's do that. If a user wants to reinstall an app, they have > > > to uninstall it and install it again. > > > > Should we disable reinstallation in general or just for our Marketplace? > > I'm not sure I understand what you mean, could you give some more detail? In > my mind the act of uninstalling and installing again equals reinstalling. Right. I think the case for reinstalling is to cut down the actions in the case you've described from down from two to one (re-install instead of uninstall + install). I do agree though that the flow for a "re-install" though exists if you take those two steps, which users are accustomed to. Sounds like our reinstall bugs for webrt on desktop then should be deprioritized if marketplace goes this direction.
Depends on: 745924
(In reply to Chris Van Wiemeersch [:cvan] from comment #25) > So to conclude: Per bug 747144 comment 12, we say "Open" to launch the app. > Yes, Maria? Yes :)
(In reply to Jason Smith [:jsmith] from comment #27) > Right. I think the case for reinstalling is to cut down the actions in the > case you've described from down from two to one (re-install instead of > uninstall + install). I do agree though that the flow for a "re-install" > though exists if you take those two steps, which users are accustomed to. > > Sounds like our reinstall bugs for webrt on desktop then should be > deprioritized if marketplace goes this direction. Okay, I see. Did this use case come from UX? My hunch is it will not be very common for users to reinstall an app (at all) but there could be research I'm unaware of. If it's a rare use case, let's not use space in the Marketplace for this functionality.
(In reply to Maria Sandberg [:mushi] from comment #29) > (In reply to Jason Smith [:jsmith] from comment #27) > > Right. I think the case for reinstalling is to cut down the actions in the > > case you've described from down from two to one (re-install instead of > > uninstall + install). I do agree though that the flow for a "re-install" > > though exists if you take those two steps, which users are accustomed to. > > > > Sounds like our reinstall bugs for webrt on desktop then should be > > deprioritized if marketplace goes this direction. > > Okay, I see. Did this use case come from UX? My hunch is it will not be very > common for users to reinstall an app (at all) but there could be research > I'm unaware of. If it's a rare use case, let's not use space in the > Marketplace for this functionality. Makes sense. The use case didn't come from UX, it was just off hand of why I could see someone using a reinstall of a web app. I'll go mark associated reinstall bugs for webrt for re-triage, since the priority is likely to drop.
Target Milestone: 2012-07-05 → 2012-07-12
Target Milestone: 2012-07-12 → 2012-07-19
Depends on: 772600
FYI - Desktop pieces have landed. Haven't verified yet (it's on my list of things to do though).
Target Milestone: 2012-07-19 → 2012-07-26
I'm inclined to mark this blocking-basecamp- because installing an app that is already installed doesn't hurt anyone. However, I expect this will be fixed shortly now that the blocker, bug 772600, is closed. Additionally, this section of code will be changing with packaged apps - there is a new InstallPackage() (or something similar) function which we'll have to integrate. For now, marking not a blocker.
blocking-basecamp: ? → -
https://github.com/mozilla/zamboni/commit/70884ab 1) visit page of free app: http://cl.ly/image/082N0r3j3o3O 2) install app: http://cl.ly/image/0C282M3i0k1d 3) return to page later: http://cl.ly/image/1T1R3h080j2A The launch instructions are likely redundant since there is a "Launch" button and - if you have Growl installed - a notification. Will users know that the app is natively installed on his/her machine (and accessible from not just the Marketplace app/site) if we omit those details? That's an open question. (And a rhetorical one! This is the 33rd comment to this bug, so if you have requests, please file a new bug. Thank you!)
Status: REOPENED → RESOLVED
Closed: 13 years ago12 years ago
Keywords: uiwanted
Resolution: --- → FIXED
We now say "launch" after an app is installed.
Status: RESOLVED → VERIFIED
Depends on: 777971
Reverted due to platform bug, bug 777971: a5f2302 994f964 7172cd2 535fdc3 70884ab
Status: VERIFIED → REOPENED
Resolution: FIXED → ---
Target Milestone: 2012-07-26 → ---
What is the action in this bug?
Target Milestone: --- → 2012-09-27
Status: REOPENED → RESOLVED
Closed: 12 years ago12 years ago
Resolution: --- → FIXED
Target Milestone: 2012-09-27 → 2012-10-04
You need to log in before you can comment on or make changes to this bug.