Install element test page

Manifest-first installs!

Requires --enable-features=InstallElement,
OR enabling about://flags/#web-app-install-element,
OR an origin trial header for InstallElement

A test app and debugging tool for the declarative version of the Web Install API, <install> element. See more info in the Explainer.

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

Executes:


      <install></install>
    

Executes:


      <install manifest="https://mustjab.github.io/manifest.json"></install>
    

Executes:


      <install manifest="https://diek.us/bubble/manifest.json" manifestid="https://diek.us/bubble/"></install>
    

DataError cases - manifest id validation (install element)

1 param, background doc, NO id in manifest

Executes:


      <install manifest="https://amandabaker.github.io/pwa/web-install/manifest.webmanifest"></install>
    

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

Executes:


      <install manifest="https://mustjab.github.io/manifest.json" manifestid="mismatched-manifest-id"></install>
    

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

Executes:


      <install manifest="https://amandabaker.github.io/pwa/web-install/manifest.webmanifest" manifestid="mismatched-manifest-id"></install>
    

More Error Cases

2 params, background doc, invalid type for install url

Executes:


      <install manifest=12345 manifestid="https://diek.us/bubble/"></install>
    

2 params, background doc, invalid type for manifest id

Executes:


      <install manifest="https://diek.us/bubble/manifest.json" manifestid=67890></install>
    

2 params, background doc, variable is a number for install url

Executes:


      <script>const numUrl = 99999;</script>
      <install id="installVarNumberUrl" manifestid="https://diek.us/bubble/"></install>
      <script>document.getElementById('installVarNumberUrl').setAttribute('manifest', numUrl);</script>
    

2 params, background doc, variable is a number for manifest id

Executes:


      <script>const numManifest = 88888;</script>
      <install id="installVarNumberManifest" manifest="https://diek.us/bubble/manifest.json"></install>
      <script>document.getElementById('installVarNumberManifest').setAttribute('manifestid', numManifest);</script>
    

2 params, background doc, variable is null for install url

Executes:


      <script>const nullUrl = null;</script>
      <install id="installVarNullUrl" manifestid="https://diek.us/bubble/"></install>
      <script>document.getElementById('installVarNullUrl').setAttribute('manifest', nullUrl);</script>
    

2 params, background doc, variable is null for manifest id

Executes:


      <script>const nullManifest = null;</script>
      <install id="installVarNullManifest" manifest="https://diek.us/bubble/manifest.json"></install>
      <script>document.getElementById('installVarNullManifest').setAttribute('manifestid', nullManifest);</script>
    

2 params, background doc, variable is undefined for install url

Executes:


      <script>let undefinedUrl;</script>
      <install id="installVarUndefinedUrl" manifestid="https://diek.us/bubble/"></install>
      <script>document.getElementById('installVarUndefinedUrl').setAttribute('manifest', undefinedUrl);</script>
    

2 params, background doc, variable is undefined for manifest id

Executes:


      <script>let undefinedManifest;</script>
      <install id="installVarUndefinedManifest" manifest="https://diek.us/bubble/manifest.json"></install>
      <script>document.getElementById('installVarUndefinedManifest').setAttribute('manifestid', undefinedManifest);</script>