Skip to content

Commit

Permalink
Update Readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Mike Wasserman committed Oct 19, 2023
1 parent cda755e commit 789bf8b
Showing 1 changed file with 39 additions and 16 deletions.
55 changes: 39 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# IWA Windowing Example

A barebones example for windowing in an [Isolated Web Application](https://github.com/WICG/isolated-web-apps)
An example of windowing in an [Isolated Web Application (IWA)](https://github.com/WICG/isolated-web-apps), leveraging the barebones [IWA Bundling Example](https://github.com/michaelwasserman/iwa-bundling-example).

Based on https://github.com/michaelwasserman/iwa-bundling-example
Run or install this example as a **non-IWA** web application at https://michaelwasserman.github.io/iwa-windowing-example/static

## Prep and Bundle

Expand Down Expand Up @@ -31,22 +31,45 @@ Note: If [reinstall fails with a manifest error](crbug.com/1494141), try restart

chrome://apps -> "IWA Windowing Example"

## Docs and resources:
## Windowing features, docs, and resources:

* [Isolated Web Apps Explainer](https://github.com/WICG/isolated-web-apps)
* [NPM webbundle-webpack-plugin for Isolated Web App (Signed Web Bundle)](https://www.npmjs.com/package/webbundle-webpack-plugin#isolated-web-app-signed-web-bundle)
* [GoogleChromeLabs webbundle-webpack-plugin for Isolated Web App (Signed Web Bundle)](https://github.com/GoogleChromeLabs/webbundle-plugins/tree/main/packages/webbundle-webpack-plugin#isolated-web-app-signed-web-bundle)
### Borderless Display Mode

## Other IWA examples:
Web Application Manifest display_override mode that lets app content be shown without any browser-provided window frame.

* https://github.com/sonkkeli/borderless
* https://github.com/GoogleChromeLabs/telnet-client
* https://coralfish-dev-access.glitch.me/
* Requires Isolated Web App context
* Requires [Window Management](https://w3c.github.io/window-management/) permission and permisison-policy
* Requires chrome://flags/#enable-desktop-pwas-borderless or `--enable-features=WebAppBorderless`
* Used in this example when the app is installed as an IWA
* [Explainer](https://github.com/WICG/manifest-incubations/blob/gh-pages/borderless-explainer.md),
[ChromeStatus](https://chromestatus.com/feature/5551475195904000),
[Borderless mode demo app](https://github.com/sonkkeli/borderless)

## IWA APIs
### Window-Controls-Overlay (WCO) Display Mode

* https://github.com/WICG/manifest-incubations/blob/gh-pages/borderless-explainer.md
* https://github.com/WICG/webusb/blob/main/unrestricted-usb-explainer.md
* https://github.com/WICG/controlled-frame/blob/main/README.md
* https://github.com/WICG/direct-sockets/blob/main/docs/explainer.md
* https://github.com/WICG/web-smart-card/
Web Application Manifest display_override mode that lets app content be shown as part of the browser-provided window titlebar.

* Requires installed Web App context (not necessarily an Isolated Web App)
* Used in this example as a fallback when the Borderless Display Mode is not available
* Note, [installed non-isolated web apps may not fallback from borderless to WCO when borderless is enabled](crbug.com/1494159)
* [Spec](https://wicg.github.io/window-controls-overlay/),
[ChromeStatus](https://chromestatus.com/feature/5741247866077184),
[MDN documentation](https://developer.mozilla.org/en-US/docs/Web/API/Window_Controls_Overlay_API),
[WCO Example PWA](https://amandabaker.github.io/pwa/explainer-example/index.html)

### Fullscreen popups

Enhances window.open() to open popup windows in fullscreen mode

* Requires [Window Management](https://w3c.github.io/window-management/) permission and permisison-policy
* Requires chrome://flags/#fullscreen-popup-windows, `--enable-features=FullscreenPopupWindows`, or [Origin Trial registration](https://developer.chrome.com/origintrials/#/view_trial/106960491150049281)
* [Explainer](https://github.com/w3c/window-management/blob/main/EXPLAINER_fullscreen_popups.md),
[chromeStatus](https://chromestatus.com/feature/6002307972464640),
[web.dev OT article](https://developer.chrome.com/blog/fullscreen-popups-origin-trial/),
[Window Management Demo](https://michaelwasserman.github.io/window-placement-demo/),

### Popups And Redirects Content Setting

Permits window.open() calls without needing to consume a "gesture" (transient user activation)

### TODO: More...

0 comments on commit 789bf8b

Please sign in to comment.