Re: [w3ctag/design-reviews] Question: Review manifest-first Web Install API (Issue #1245)

christianliebel left a comment (w3ctag/design-reviews#1245)

Hi @robpaveza, thanks for putting this on the record.

> I think there is interesting novelty there, and I wish we'd discussed something there which had been productive sooner, although it isn't entirely clear to me that the claim of "it's considerably safer" is true. (What is "safe" on the web is entirely outlined by what the user agent affords the web to do, but I understand the impetus behind the claim.)

You are right that identifying related websites would need an API/data format like Related Website/First Party Sets. We note that this is a recurring pattern on the Web, and may be a topic for the TAG to look at separately.

For safety, we were thinking about the following:

* It’s beneficial for an “install” button to turn into “open” when the app is already installed, but we wouldn’t want to tell arbitrary sites which apps a user has installed. If we have evidence that it’s all the same entity, it’s less of a problem to send that information. https://github.com/WICG/install-element/blob/main/explainer-manifest-url.md#privacy addresses this to some extent, but puts a burden on the UA’s rendering to prevent that leak.
* Users might get confused about why App 2 appeared on their desktop after they clicked an install button on App 1. This might be less confusing if the apps at least belonged to one and the same entity. On the other hand, an organization might have incentives to get as many of its own apps onto people’s desktops and home screens as possible.

> we have purposely chosen API shapes - accepting a dictionary and/or a list of optional element attributes - which can afford for change and growth in the future

Is there a way for developers to learn which kinds of install (i.e., which dictionary properties) a user agent supports? Say an engine implements `navigator.install()` but only for the current document, not for manifest URLs, is there a `canInstall()` method (similar to `navigator.canShare()`), or would I, as a developer, need to infer this from the rejection of `navigator.install()`? And how would the `<install>` element behave in that case?

Maybe you want to share your thoughts here.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3ctag/design-reviews/issues/1245#issuecomment-6122409927
You are receiving this because you are subscribed to this thread.

Message ID: <w3ctag/design-reviews/issues/1245/6122409927@github.com>

Received on Monday, 12 October 2026 10:38:47 UTC