An example of Isolated Web Application (IWA) windowing functionality
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.
This example is hosted on GitHub HERE. Functionality is limited without IWA installation.
$ 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]/
$ 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.
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.
A Web Application Manifest display_override mode. Used to show app content without any browser-provided window frame.
--enable-features=WebAppBorderless
Web Application Manifest display_override mode that lets app content be shown as part of the browser-provided window titlebar.
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.