Web Install Sample

A test app and debugging tool for the Web Install API. See more info in the Explainer.

We'd love to hear your feedback! To share feedback, please create a GitHub issue.

Note:

Current document installs = installing the current page.

Background document installs = installing anything else that's not the current page.

Intended use cases

0 param, current doc (manifest has `id`)

Executes:


      await navigator.install();
    

1 param, background doc, cross origin (manifest has `id`)

Executes:


      let install_url = "https://mustjab.github.io/";
      await navigator.install(install_url);
    

2 param, background doc, cross origin

Executes:


      let install_url = "https://diek.us/bubble/";
      let manifest_id = "https://diek.us/bubble/index.html";
      await navigator.install(install_url, manifest_id);
    

2 param, background doc, cross origin, with screenshots

*Note - for internal testing

Executes:


      let install_url = "https://squoosh.app/";
      let manifest_id = "https://squoosh.app/?utm_medium=PWA&utm_source=launcher";
      await navigator.install(install_url, manifest_id);
    

DataError cases - manifest id validation

1 param, background doc, NO id in manifest

Executes:


      let install_url = "https://amandabaker.github.io/pwa/web-install/index.html";
      await navigator.install(install_url);
    

2 params, background doc, YES id in manifest, mismatched input

Executes:


      let install_url = "https://mustjab.github.io/";
      let manifest_id = "mismatched-manifest-id";
      await navigator.install(install_url, manifest_id);
    

2 params, background doc, NO id in manifest, mismatched input

Executes:


      let install_url = "https://amandabaker.github.io/pwa/web-install/index.html";
      let manifest_id = "mismatched-manifest-id";
      await navigator.install(install_url, manifest_id);
    

V8 TypeError - bad JS input

1 param, undefined

Executes:


      let install_url;
      await navigator.install(install_url);
    

1 param, invalid URL

Executes:


      let install_url = "badurl";
      await navigator.install(install_url);
    

2 param, undefined install url

Executes:


      let install_url;
      let manifest_id = "https://diek.us/bubble/index.html";
      await navigator.install(install_url, manifest_id);
    

2 param, undefined manifest id

Executes:


      let install_url = "https://kbhlee2121.github.io/pwa/web-install/index.html";
      let manifest_id;
      await navigator.install(install_url, manifest_id);
    

Edge cases - installing self with params

*Note - currently these are treated as current doc installs, meaning they reparent the current web contents. This may change in the future.

Install self, 1 parameter

Executes:


      let install_url = "https://kbhlee2121.github.io/pwa/web-install/index.html";
      await navigator.install(install_url);
    

Install self, 2 parameters

Executes:


      let install_url = "https://kbhlee2121.github.io/pwa/web-install/index.html";
      let manifest_id = "https://kbhlee2121.github.io/WebInstallSample";
      await navigator.install(install_url, manifest_id);