iwa-windowing-example

IWA Windowing Example

An example of Isolated Web Application (IWA) windowing functionality

How to Run

Build or download the signed web bundle.

Run Chrome M124+ and enable flags:

$ chrome --enable-features=IsolatedWebApps,IsolatedWebAppDevMode,AutomaticFullscreenContentSetting,WebAppBorderless

Visit chrome://web-app-internals/ and point “Install IWA from Signed Web Bundle” to iwa-windowing-example.swbn

Visit chrome://apps and launch “IWA Windowing Example”

Note: If reinstall fails, try restarting Chrome.

Optional: Test limited non-IWA functionality

This example is hosted on GitHub HERE. Functionality is limited without IWA installation.

Optional: Self-Host a Dev Mode Proxy

$ git clone https://github.com/michaelwasserman/iwa-windowing-example.git
$ cd iwa-windowing-example/static
$ python3 -m http.server [port]

Visit chrome://web-app-internals/ and point “Install IWA via Dev Mode Proxy” to http://localhost:[port]/

Optional: Self-Build a Signed Web Bundle

$ git clone https://github.com/michaelwasserman/iwa-windowing-example.git
$ cd iwa-windowing-example
$ openssl genpkey -algorithm Ed25519 -out ed25519key.pem
$ npm i
$ npm init
$ npm run build

This builds iwa-windowing-example.swbn to use with chrome://web-app-internals/.

Note: Keep the new ed25519key.pem private key file secure; do not share it in a public repo :) Note: See barebones IWA Bundling Example.

Windowing features, docs, and resources:

Automatic Fullscreen Content Setting (IWA or enterprise only)

Permits Element.requestFullscreen() calls without a user gesture (transient activation). Used to open fullscreen popups, and enter fullscreen on mouse hover or after a 6s delay.

Borderless Display Mode (IWA-only)

A Web Application Manifest display_override mode. Used to show app content without any browser-provided window frame.

TODO: Additional Windowing Controls (IWA-only)

Fullscreen (with a user gesture)

Window Management API (cross-screen popups and fullscreen)

Window-Controls-Overlay (WCO) Display Mode (Installed Web Apps only)

Web Application Manifest display_override mode that lets app content be shown as part of the browser-provided window titlebar.

Pop-ups And Redirects Content Setting

Permits window.open() calls without a user gesture (transient activation) Used to open a popup on each display of multi-screen device with one gesture.

DEPRECATED: Fullscreen popups.