*Contact emails*[email protected], [email protected]
*Explainer*
https://aka.ms/webinstall
*Specification*
https://github.com/w3c/manifest/pull/1175
*Design docs*
https://docs.google.com/document/d/12nSXJLm8mW0gWZ_yjlXfrV8r9gwJliVt4WVa-209-KA/edit?tab=t.0
*Summary*
Allows a website to install a web app. The API provides 3
signatures, with 0, 1, and 2 parameters, respectively. When
invoked, the website installs either itself, or another site from
a different origin, as a web app (depending on the provided
parameters). All 3 signatures will be experimented with in parallel.
*Terminology - A site installing itself is a "current document
install". A site installing another site is a "background
document install".
*Blink component*
Blink>AppManifest
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EAppManifest%22>
*Web Feature ID*
web-install <https://webstatus.dev/features/web-install>
*Search tags*
web install
<https://chromestatus.com/features#tags:web%20install>, install
<https://chromestatus.com/features#tags:install>
*TAG review*
https://github.com/w3ctag/design-reviews/issues/1051 (Although
this is technically the early design review, we went through
several rounds of feedback from this that influenced the shape of
the API significantly)
*TAG review status*
Issues open
*Origin Trial documentation link*
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/WebInstall/explainer.md
*Risks*
*Interoperability and Compatibility*
Interop - Low risk.
This is a new API that installs web apps, which are supported by
other browsers. The no argument version of the API (installs the
current document) has enough support to be merged into the W3C
web app manifest spec -
https://github.com/w3c/manifest/pull/1175. It has also been
reviewed favorably by TAG -
https://github.com/w3ctag/design-reviews/issues/1051.
While the argument versions of the API (installing a document in
the background) are still under discussion in WICG, we have no
reason to believe there will be interop risk with these additions.
Compatibility - Low risk.
This is a new API that requires explicit developer action to use.
/Gecko/: No
signal (https://github.com/mozilla/standards-positions/issues/1179)
/WebKit/: No
signal (https://github.com/WebKit/standards-positions/issues/463)
/Web developers/:
Positive
(https://github.com/w3ctag/ethical-web-principles/issues/120#issuecomment-2285348765)
https://github.com/w3ctag/ethical-web-principles/issues/120#issuecomment-2285431557
/Other signals/: pwastore.io <http://pwastore.io> -
https://www.reddit.com/r/PWA/comments/1o1excp/comment/niit2jh/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
<https://www.reddit.com/r/PWA/comments/1o1excp/comment/niit2jh/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button>
*Ergonomics*
This could be used in conjunction with the
navigator.getInstalledRelatedApps API, which tells a developer if
any related web apps are installed for their site, before
attempting to install with navigator.install. There is overlap
between navigator.install and the BeforeInstallPrompt event.
navigator.install is more ergonomic, and we think developers will
prefer its declarative install. See this thread -
https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/1055
*Activation*
No activation risks. It should be relatively easy for developers
to take advantage of this feature immediately, as-is. The API was
designed with ergonomics in mind, and we have four places with
instructions for developers (two test sites, the explainer
itself, and a Developer Trial README)
*Security*
See security considerations for both current document and
background document functionality - current document -
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/WebInstall/explainer-current-doc.md#accessibility-privacy-and-security-considerations
background
document -
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/WebInstall/explainer-background-doc.md#accessibility-privacy-and-security-considerations
*WebView application risks*
/Does this intent deprecate or change behavior of existing APIs,
such that it has potentially high risk for Android WebView-based
applications?/
/No information provided/
*Goals for experimentation*
We are looking to answer the following questions about the
current API surface with this experiment to aid in further
developments of the feature. We’ve added 2 new UKMs and 2 UMAs,
in addition to preexisting web app/permissions metrics, to help
in answering these questions during the experiment.
1 - Is there evidence of abuse or annoyance in the API's prompt
surfaces (permission and installation)?
metric(s) - App installation rate per origin; Permissions
metrics, such as rate of prompt denial, or permission disablement
in site settings.
2 - Is there a spike in uninstallations, that would indicate user
regret, or lack of UX clarity?
metric(s) - Amount of apps uninstalled within 1 hour of
installation.
3 - Do developers understand the manifest id requirements of the
API?
metric(s) - Rate of DataErrors returned to the renderer.
4 - The API has 3 signatures, and can do 2 types of
installations, as well as app launches. Are developers
understanding and effectively using all signatures?
metric(s) - JS use counter data; success rate of both current and
background installs; CTR of app launch dialog.
*Ongoing technical constraints*
None
*Debuggability*
Existing DevTools support for promise-based JS APIs. No new
DevTools support is needed.
*Will this feature be supported on all six Blink platforms
(Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?*
No
Windows, Mac, Linux, and ChromeOS will be shipped first. Android
will be supported later, due to significant technical deviation
in the web app ecosystem -
https://issues.chromium.org/issues/424497410. As of now, no plan
to support Android WebView.
*Is this feature fully tested by * *web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>**?*
No
Web app installs are not supported in WPT, but we will add a WPT
manual test.
*DevTrial instructions*
https://microsoftedge.github.io/Demos/pwa-web-install-api
*Flag name on about://flags*
web-app-installation-api
*Finch feature name*
WebAppInstallation
*Requires code in //chrome?*
False
*Tracking bug*
https://issues.chromium.org/issues/333795265
*Measurement*
We have a JavaScript UseCounter and WebDX feature -
https://chromestatus.com/metrics/webfeature/timeline/popularity/375 We
will also implement chromium UMAs and possibly UKMs for the API
service results.
*Estimated milestones*
Origin trial desktop first
144
DevTrial on desktop
139
*Link to entry on the Chrome Platform Status*
https://chromestatus.com/feature/5183481574850560?gate=5098406862651392
*Links to previous Intent discussions*
Intent to Prototype:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/DB9PR83MB05184F25E5FEE4595055FE34CC042%40DB9PR83MB0518.EURPRD83.prod.outlook.com
Ready for Trial:
https://groups.google.com/a/chromium.org/g/blink-dev/c/ame_t7wN2cU
This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.
--
You received this message because you are subscribed to the
Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to [email protected].
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/BL3PR00MB143232507729DB55F568F0D8D3FAA%40BL3PR00MB1432.namprd00.prod.outlook.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/BL3PR00MB143232507729DB55F568F0D8D3FAA%40BL3PR00MB1432.namprd00.prod.outlook.com?utm_medium=email&utm_source=footer>.