MicrosoftEdge / MSEdgeExplainers

Home for explainer documents originated by the Microsoft Edge team
Creative Commons Attribution 4.0 International
1.31k stars 216 forks source link

[Web Install] How to handle a second install attempt for an installed app? #756

Closed amandabaker closed 8 months ago

amandabaker commented 9 months ago

Scenario:

Proposals:

  1. [Preferred] Browser prompts user to open app: This is the best user experience since it still directs them to launch the app which they were presumably installing with the intent of using.
    1. [Preferred] Promise resolves: This indicates to the store that the app was installed.
      • Pros: This allows the store to update their UI to show an "open" button instead of an "install" button.
      • Cons: Combined with the Acquisition Info API, this would lead to a mismatch of perceived installs to actual attribution. It's also unclear how this would combine with getInstalledApps(), which is supposed to return the list of apps installed from this install source (from this Store)
    2. Promise rejects: Indicates that the app was not installed.
      • Pros: No confusion with Acquisition Info API or getInstalledApps()
      • Cons: Confusing user experience since the store may still indicate that the app is installable (and thus, not installed)
  2. Browser does not prompt user: This is not only a bad user experience since they are unaware of why the "Install" button they clicked had no effect, but immediately rejecting the promise may also indicate to the store that the app is already installed, which increases the fingerprinting risk.
amandabaker commented 8 months ago

Taking the preferred approaches above.