demo · v143

Cross-origin storefront

The use case the 2-arg form was added for: a web-based "app store" that installs PWAs from other origins on the user's behalf. Each card calls navigator.install(manifestUrl, origin). The browser handles the consent and install UI.

flag required — cross-origin install needs chrome://flags/#web-app-installation-api plus a participating origin-trial token or the dev-mode flag. The page attempts the call regardless and shows what your browser does.

browse the storefront

install log

the call

// 0-arg: install self  →   navigator.install()
// 1-arg: install another manifest from same origin
//        →  navigator.install("/other-pwa/manifest.json")
// 2-arg: cross-origin install — needs both the manifest URL AND the install_url
//        →  navigator.install("https://app.example/manifest.json",
//                             "https://app.example/install")

// The browser will prompt the user to confirm before installing
// anything from another origin.

why this angle

The other concept lets you pick all three signatures and try them in isolation. This one is the most-discussed real use case: a curated PWA storefront listing apps from other origins. Cards mimic web.dev, Apple's open-web stance, the <m>assistant idea — the install button is the same call regardless.

see also