Contact emails

[email protected]<mailto:[email protected]>, 
[email protected]<mailto:[email protected]>, 
[email protected]<mailto:[email protected]>

Explainer

https://aka.ms/installelement

Specification

No information provided

Design docs
https://docs.google.com/document/d/1rGvLhD4SR8Y9M1wVmqgyesPNkbZGU7HOqlttjEFJ5Vo/edit?tab=t.tmx19oox759l#heading=h.j3tt49hqiuck

Summary

Allows a website to declaratively prompt users to install a web app. The 
element optionally accepts two attributes which allows installation of content 
from a different origin.

Blink component

Blink>AppManifest<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EAppManifest%22>

Web Feature ID

install-element<https://webstatus.dev/features/install-element>

Search tags

webinstall<https://chromestatus.com/features#tags:webinstall>, 
webappinstallation<https://chromestatus.com/features#tags:webappinstallation>, 
webinstallapi<https://chromestatus.com/features#tags:webinstallapi>, 
installelement<https://chromestatus.com/features#tags:installelement>

TAG review

https://github.com/w3ctag/design-reviews/issues/1051 (This is technically the 
early design review for the imperative navigator.install - we went through 
several rounds of feedback off of this that influenced the shape of the 
installation capability significantly. The same origin capability was rated 
'satisfied with concern' and only the cross-origin capability was rated 
'unsatisfied'. This review is still relevant for this declarative HTML install 
element, as it's simply a new entry point.)

TAG review status

Pending

Goals for experimentation

1 - Gather developer feedback on the ergonomics and usability (e.g. styling 
options) of the element.

2 - Compare data (including developer feedback) on the element-based install, 
with the imperative Web Install API (navigator.install), to inform future 
direction.

As part of navigator.install, 2 new UKMs and 2 UMAs were added. We've updated 
these so we can differentiate between the two entry points for direct 
comparison.

See experimentation goals for navigator.install - 
https://chromestatus.com/feature/5183481574850560

Risks

Interoperability and Compatibility

Interop - Low risk. This is a new entry point to the Web Install API that 
installs web apps, which are supported by other browsers.

The no-attribute version of the element (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 attribute versions of the element (installing a cross-origin 
document) 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 element that requires explicit 
developer action to use.

Gecko: No signal (Web Install capability * Issue #1179 * 
mozilla/standards-positions<https://github.com/mozilla/standards-positions/issues/1179>)

WebKit: No signal (Web Install API * Issue #463 * 
WebKit/standards-positions<https://github.com/WebKit/standards-positions/issues/463>)

Web developers: Positive (Principle: The Web should not owned by anyone * Issue 
#120 * 
w3ctag/ethical-web-principles<https://github.com/w3ctag/ethical-web-principles/issues/120#issuecomment-2285431557>)

Other signals: pwastore.io - pwastore.io - the PWA focused marketplace everyone 
deserve : 
r/PWA<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 rendering the install element. There is overlap between this 
install element and the BeforeInstallPrompt event. This element is more 
ergonomic, and we think developers will prefer its declarative format. 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 element was designed with 
ergonomics in mind, and we have multiple places with instructions for 
developers (two test sites, and the explainer itself)

Security

The element proposal came out of security concerns with imperative APIs, 
specifically that an API to trigger the PWA installation flow cannot provide a 
strong enough signal of user intent to install an app, thereby increasing the 
risk of abuse and annoyance to users.

<install> inherits from a base capability element, which has many security 
protections. Some examples include (1) restrictions on element styling/sizing 
(eg. it cannot be fully transparent, and it has a minimum and maximum size), 
(2) preventing activation if out of view, or recently attached to the tree, and 
(3) preventing clipping/occlusion/distortion.

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?

N/A

Ongoing technical constraints

None

Debuggability

Existing DevTools support for HTML elements. The base capability element also 
raises customized DevTools issues if the browser believes it cannot safely 
allow the element to be activated. 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

The element's base behavior (styling/activation restrictions, etc) can be 
tested. See https://wpt.fyi/results/html/semantics/permission-element. However, 
web app installs are currently not supported by automated tests, as they 
require user interaction to confirm the installation. Manual web app testing 
instructions can be published.

Flag name on about://flags

web-app-install-element

Finch feature name

InstallElement

Requires code in //chrome?

False

Tracking bug

https://issues.chromium.org/issues/454827186

Measurement

We have a JavaScript use counter that tracks how often the element is found in 
pages (regardless of whether it can be activated). We also have chromium UMAs 
and UKMs.

Estimated milestones

Origin trial desktop first

148

Origin trial desktop last

153



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5152834368700416?gate=5998917676302336

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/IA1PR00MB2654BFD844FFE0B61AED9A73D349A%40IA1PR00MB2654.namprd00.prod.outlook.com.

Reply via email to