Intent to Prototype: Window Controls Overlay for Installed Desktop Web Apps

338 views
Skip to first unread message

Amanda Baker

unread,
Apr 3, 2020, 10:23:52 PM4/3/20
to blin...@chromium.org, fugu-dev

Contact emails

amb...@microsoft.com,jaso...@microsoft.com

 

Explainer

https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/master/TitleBarCustomization/explainer.md

 

Design docs/spec

https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/master/TitleBarCustomization/explainer.md

 

TAG review

https://github.com/w3ctag/design-reviews/issues/481

 

Summary 

When the window controls overlay is enabled for installed desktop web apps, the app's client area is extended to cover the entire window--including the title bar area--and the window control buttons (close, maximize/restore, minimize) are overlaid on top of the client area. The web app developer is responsible for drawing and input-handling for the entire window except for the window controls overlay.

 

Motivation 

Developers want to customize the title bar area so their PWAs feel more like native apps. 

 

Risks

Interoperability and Compatibility 

Given that Edge has interest in the feature, there would be at least one other browser that implements it. The feature involves additive changes (new web app manifest entry, new JS API, new CSS env variables) and modifications (changes to frame, new use of env(safe-area-inset-*), but no removals, so the compatibility risk is minimal. 

 

Firefox: No public signals 

Edge: Public support (https://github.com/w3c/manifest/issues/847

Safari: No public signals 

Web developers: No signals 

 

Ergonomics 

The changes associated with this feature will only be enabled for PWAs that opt-in to it, so there are minimal risks posed to the browser as a whole. A PWA that opts-in to the feature should also have minimal ergonomics risk since the manifest already needs to be parsed on startup to determine the correct display mode in which the app should be launched, so adding one extra manifest check on startup should have minimal impact. 

 

Activation

The activation risk is low since this feature includes all the tools needed to create an app that uses the full extent of the window: new UA-provided window controls overlay, JS APIs to query the size of the overlay, and CSS environment variables to layout content around the overlay.

 

Security 

The major risk is that giving sites partial control of the top of the app window is it allows developers to spoof content in what was previously a trusted, UA-controlled region. To minimize the risk of spoofing, the UA-provided window controls overlay will still display the origin of the website on startup (this is the current behavior of PWAs).

 

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

No 

All platforms will be supported except Android and iOS. These two platforms already support “fullscreen” display mode and don't use window controls negating the need for an overlay.

Is this feature fully tested by web-platform-tests? 

No 

N/A not implemented 

 

Link to entry on the Chrome Platform Status

https://www.chromestatus.com/feature/5741247866077184

 

Sonja Laurila

unread,
Nov 5, 2021, 11:26:46 AM11/5/21
to blink-dev, Amanda Baker, fugu-dev, Ivan Šandrk
We have implemented this on Chrome OS too.
Reply all
Reply to author
Forward
0 new messages