W3C

– DRAFT –
Web Install API - TPAC 2020 breakout session

27 October 2020

Attendees

Present
jsbell, Laszlo_Gombos
Regrets
-
Chair
Peter Conn
Scribe
tidoust

Meeting minutes

Presentation

PEConn: Let's get started.
… I would feel more comfortable if people hold on on questions until the end of the presentation
… I'm Peter. Working at Google for 5 years now on the Chrome Android team.
… Team responsible for Web APK.
… We've got an idea, in very early stages. We'd like to get your feedback.
… What are your concerns? Very exploratory overall.
… What is this API about?
… Simply put, an API that allows a website to request the installation of another website
… You can request to install yourself too.
… Two main use cases: web app directories.
… Catalogues of web apps, reviews, ratings, so on. They do exist today but somewhat limited.
… Second, a unified installation page for vendors.
… Why do we want to make app directories better?
… It will make apps more appealing to developers and more useful for users.
… The Web does not really have a good place for people to go for that.
… Mechanisms to install at the expense of discoverability for the time being.
… Why unified install pages?
… The reason we like this is that it encourages publishers to organize their apps in different domains, stronger isolation, more granular permissions.
… Some concerns: We should protect the user from the catalogue, the user from the install website, and we may want to protect the target website from the catalogue.
… We could imagine that, to protect the user from the catalogue, you have some kind of permission, a browser prompt, a user gesture or perhaps some trustability measure.
… Not mutually exclusive
… To protect the user from the target website, we want to apply normal installability criteria.
… [mentions some difficulties]
… To protect the target website from the catalogue, example of Proxx which was copied an sold within hours of being uploaded.
… We cannot solve this magically, but we could give some control to an app over who can list/install it.
… We have been doing some mocks for Android (I'm more familiar with that platform).
… [showing some UX designs]
… Seamless install. Or browser prompt, where the user interacts with a prompt to confirm the install.
… Finally, we've got try before you buy, slightly different approach.
… The goal is for the user to be able to quickly return to the catalogue if they close.
… Finally, a list of open questions:
… 1. Should the website know where the installer come from?
… Linked to the monetization question.
… Some way for websites to know what triggered the installation. Referrer or something more complex.
… Informing the directory of the outcome. Some way to turn the "install" button into a "launch" button.
… Checking for existing installs. The directory would want to customize its UI.
… This would be a big privacy concern if any more than 3 apps are shown because it would liead to fingerprinting.
… Presumably, we could let the directory see the apps that it has in store itself.
… Now taking questions!

Discussion

Kenneth: I'm a bit scared of store apps looking exactly like your bank
… My bank might say: I don't want to be in any app store, but the app store may contain another app that mimics the bank app in different stores.
… Things like mixing character sets in URL.
… Somewhat like UI guarantees that you cannot mimic, as for fullscreens.

PEConn: Store has to do its due diligences.
… I guess it is definitely a concern, because we would be creating a more valuable ecosystem for app stores.
… At the moment, we have very few and very trustworthy stores. Not sure what to say about what will happen when the number of stores increases.

Kenneth: Safe list, probably a file on the side not to have to update the manifest JSON file.

PEConn: Perhaps. Blocklists may not work because stores may not respect them.

Aaron: One of the things I've been doing some research on is using related apps number of references to enumerate stores.
… That might help protecting the user from the catalogue.

PEConn: How does that currently work?
… Websites are cross-platform but stores aren't really for now.

Aaron: Will have something to share in the next week or two.
… The browser ends up making the decision and listing different catalogues from which an application could be retrieved.

PEConn: Any thoughts about any of the open questions?

Aaron: From our experience in Microsoft world, referral is very important.
… When apps were uninstalled could be very useful metric too.
… Referral becomes very useful for cases where you have bounty programs, e.g. when the store gets paid for a certain number of installs.

PEConn: This checking for existing installs is the hardest for me. Anyone got thoughts about that?

Aaron: From a UX standpoint, the ability to know whether an app was installed would be useful.
… Some people have multiple times the same PWA, sometimes using from different browsers.
… I wonder whether there might be some way that we could explore. Some magic button that browsers could control and not pass the info to the app.

Kenneth: Difficult, given the need to style the button through CSS

Aaron: If the directory is the source of the installation, that's not a big deal providing that info. But there are other scenarios.
… Perhaps we could intercept an installation request for something that is already installed and offer to launch it instead.

PEConn: That would work for the dialog approach in the options I listed.

Kenneth: I think that this is quite useful. Entreprises that want their own stores for instance.
… But definitely a lot of concerns.
… I wonder about additional permissions. Maybe entreprise access.
… Some form of approval, handholding would be useful.

PEConn: There may be a way to end up with a sliding scale if we can trust stores more.

Kenneth: In the enterprise case, this will be administrated anyway.

Joshua: [scribe missed question]

<PEConn> If the app store loses the "I'm an app store permission", should the apps it installed be uninstalled?

<PEConn> (that was the question)

Kenneth: Red alert seems fine to me.

PEConn: You're saying that the unified installation page is a better motivator for this API?

Kenneth: I don't know. I know that this is a pretty compelling use case.
… The app store thing, I don't expect a lot of those. That would be confusing for users anyway.
… 10, 50, depending on regions.
… Entreprises will have pre-approved apps.
… For public ones, you probably want some relationship with e.g. Google to get permissions.
… It is really a scary thing.

PEConn: Do you have other examples of using origin trials as a way to restrict permissions as opposed to giving an API a try?

Kenneth: No.
… [going in some details]

Francois: The games CG discusses web games. Main issues raised are around discoverability, installation, and monetization. Wondering whether you have been looking into this use case or more generically into all sorts of apps.

PEConn: We're more looking at more generic apps, although some people have mentioned this new Amazon games streaming thing.
… Something to bear in mind.

Francois: Link to monetization?

PEConn: I'm also working on the Digital Goods API
… It also a website that's hosted in a trusted web activity to talk to the payment library installed on the phone.
… So the digital goods API allows the web site to take payments.
… You could see other people implementing the API.
… One of the things it does is, how it works depend on the context. If you're running in a web site, it returns null. If you're in a PWA, it returns an object.
… Browser can figure out what your install source is.
… and return the right info and features accordingly.

Francois: What are the next steps? Incubate in the WICG?

PEConn: Just an idea for now. We wanted to get some feedback first. Seems we get some positive feedback but also concerns.
… We'll work on answering some of the questions and come up with something more concrete.
… We may have a talk about that at the upcoming BlinkOn.

PEConn: Thanks a lot for attending the session! Look at the slides for my email if you want to reach out!

<PEConn> thank you very much!

Minutes manually created (not a transcript), formatted by scribe.perl version 123 (Tue Sep 1 21:19:13 2020 UTC).

Diagnostics

Succeeded: s/@@Games/The games CG discusses web games. Main issues raised are around discoverability, installation, and monetization. Wondering whether you have been looking into this use case or more generically into all sorts of apps./

Succeeded: i/... I would feel more comfortable/PEConn: Let's get started./

Succeeded: i/PEConn: Let's get started./Topic: Presentation/

Succeeded: i/Kenneth: I'm a bit scared/Topic: Discussion/

Maybe present: Aaron, Francois, Joshua, Kenneth, PEConn