A test app and debugging tool for the Web Install API, navigator.install(). See more info in the Explainer.
We'd love to hear your feedback! To share feedback, please create a GitHub issue.
*Requires --enable-features=WebAppInstallation (or about://flags/#web-app-installation-api)
Current document installs = installing the current page.
Background document installs = installing anything else that's not the current page.
See this test page*
*Requires --enable-features=InstallElement (or about://flags/#web-app-install-element) OR an origin trial meta header
for InstallElement*
See the Permission Policy test page
Expected result: success.
id)Executes:
navigator.install();
id)Executes:
navigator.install({
manifest: "https://mustjab.github.io/manifest.json",
});
manifestId (manifest has no id)Executes:
navigator.install({
manifest: "https://isitchristmas.com/manifest.json",
manifestId: "https://isitchristmas.com/",
});
id, manifestId undefined
manifestId is optional. Passing undefined or
null is treated the same as not supplying it, so installation
can succeed when the manifest declares a custom id.
Executes:
navigator.install({
manifest: "https://kbhlee2121.github.io/pwa/web-install/manifest.webmanifest",
manifestId: undefined,
});
*Note - screenshots not yet supported
Executes:
navigator.install({
manifest: "https://squoosh.app/manifest.json",
manifestId: "https://squoosh.app/?utm_medium=PWA&utm_source=launcher",
});
*Note - Although the end result is the same ('foo' site installs itself), passing parameters like this will launch the foo app in a new window, preserving the 'foo' tab in the main browser window.
Executes:
navigator.install({
manifest: "https://kbhlee2121.github.io/pwa/web-install/manifest.webmanifest",
});
manifestIdExecutes:
navigator.install({
manifest: "https://kbhlee2121.github.io/pwa/web-install/manifest.webmanifest",
manifestId: "https://kbhlee2121.github.io/WebInstallSample",
});
DataError Cases: Manifest ValidationExecutes:
navigator.install({
manifest: "badurl",
});
id, manifestId omittedExecutes:
navigator.install({
manifest: "https://amandabaker.github.io/pwa/web-install/manifest.webmanifest",
});
id, manifestId undefined
Because undefined is treated as not supplying
manifestId, this returns DataError: the manifest
does not declare a custom id.
Executes:
navigator.install({
manifest: "https://isitchristmas.com/manifest.json",
manifestId: undefined,
});
id, mismatched manifestIdExecutes:
navigator.install({
manifest: "https://mustjab.github.io/manifest.json",
manifestId: "mismatched-manifest-id",
});
id, mismatched manifestIdExecutes:
navigator.install({
manifest: "https://amandabaker.github.io/pwa/web-install/manifest.webmanifest",
manifestId: "mismatched-manifest-id",
});
TypeError Cases: Invalid JavaScript InputExecutes:
navigator.install({});
Executes:
navigator.install({
manifest: "",
});
Executes:
navigator.install({
manifest: "https://[",
});
manifestIdExecutes:
navigator.install({
manifest: "https://mustjab.github.io/manifest.json",
manifestId: "",
});
manifestIdExecutes:
navigator.install({
manifest: "https://mustjab.github.io/manifest.json",
manifestId: "https://[",
});
Executes:
navigator.install({
manifest: undefined,
});
manifestIdExecutes:
navigator.install({
manifest: undefined,
manifestId: "https://isitchristmas.com/",
});