Contact emails
pch...@google.com,
m...@chromium.org
Explainer
https://github.com/w3c/window-management/blob/main/EXPLAINER_additional_windowing_controls.md
Specification
https://www.w3.org/TR/window-management/#api-window-minimize-method
Summary
Enables web applications with the window-management permission to maximize(), minimize(), and restore() their windows, and to prevent resizing through setResizable(). Additionally, new CSS media features display-state and resizable enable scripts and content to adapt to the respective window states and resizability. These features improve the usability of VDI remote application windows in Web clients, especially when it comes to titlebar window controls. The new functionality enhances existing Window Management API features:
https://chromestatus.com/feature/5252960583942144
Blink component
Blink>WindowDialog
Web Feature ID
window-management
Motivation
Virtual Desktop Infrastructure (VDI) web clients have limited abilities to integrate remote application windows with the local desktop environment, which creates suboptimal experiences for their users. Currently, they can only present full disjoint remote desktop environments (e.g. in a local fullscreen window), or present individual remote applications in separate local windows with titlebar window controls that are inoperative, redundant, and confusing for users.
Initial public proposal
https://discourse.wicg.io/t/proposal-additional-windowing-controls/6044
TAG review
https://github.com/w3ctag/design-reviews/issues/1246
TAG review status
Pending
Goals for experimentation
Risks
Interoperability and Compatibility
No information provided
Gecko: No signal (
https://github.com/mozilla/standards-positions/issues/712)
WebKit: No signal (
https://github.com/WebKit/standards-positions/issues/96)
Web developers: Positive (
https://github.com/w3c/window-management/issues/3) From VDI web client partners (Citrix & VMware) - the feature is needed by them for single application streaming using web technologies.
https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/seamless.html
https://github.com/w3c/window-management/issues/158
Other signals:
Ergonomics
Permissions API status queries and CSS Media Queries provide feature support detection, display mode queries represent whether the features are viable in the current window. The window-state feature would pair nicely with a proposed `application-context` CSS media feature to resolve ambiguities of the `display-mode` media feature when a standalone Web App window enters fullscreen:
https://github.com/w3c/manifest/pull/1218
This enhancement fits naturally with the Window Management API, and display state control methods are straightforward. This enhancement is especially useful when paired with Unframed display mode for Isolated Web Apps:
https://chromestatus.com/feature/5551475195904000
The API should not have any performance impact and state transitions are not expected to occur frequently.
Activation
The API is fairly simple and utilizes concepts already present in existing operating systems. It's a reasonable progressive enhancement expected to be especially useful for VDI remote application windows.
Security
Permission and user activation requirements mitigate primary risks:
- Focus stealing by a malicious application
- Malicious applications hiding from the user
- Application changing the display state in a loop
WebView application risks
Does this intent deprecate or change behavior of existing APIs,
such that it has potentially high risk for Android WebView-based
applications?
No - the feature is not supported on WebView.
Debuggability
The feature has basic support provided automatically by DevTools.
Will this feature be supported on all six Blink platforms
(Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
No
Launch support: Initially planned for ChromeOS. Windows, Mac and Linux planned for fast-follow.
Support is not yet planned for Android or Android WebView, but should be feasible for Android freeform windowing modes.
No
Full automated WPT coverage is not currently possible, because the feature is only applicable to standalone PWA windows. Initial limited coverage can be found at:
https://wpt.fyi/results/css/mediaqueries/display-state.tentative.html
https://wpt.fyi/results/css/mediaqueries/resizable.tentative.html
https://wpt.fyi/results/window-management/additional-windowing-controls.tentative.https.html
Flag name on about://flags
enable-desktop-pwas-additional-windowing-controls
Finch feature name
DesktopPWAsAdditionalWindowingControls
Rollout plan
Will ship enabled for all users
Requires code in //chrome?
True
Tracking bug
https://issues.chromium.org/issues/40192345
Launch bug
https://launch.corp.google.com/launch/4234439
Measurement
window.minimize() -
https://chromestatus.com/metrics/feature/timeline/popularity/4761
window.maximize() -
https://chromestatus.com/metrics/feature/timeline/popularity/4762
window.restore() -
https://chromestatus.com/metrics/feature/timeline/popularity/4763
window.setResizable() -
https://chromestatus.com/metrics/feature/timeline/popularity/4764
Estimated milestones
| Shipping on desktop | 155 |
| DevTrial on desktop | 122 |
Anticipated spec changes
Open questions about a feature may be a source of future web compat or
interop issues. Please list open issues (e.g. links to known github
issues in the project for the feature specification) whose resolution
may introduce web compat/interop risk (e.g., changing to naming or
structure of the API in a non-backward-compatible way).
No information provided
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5201832664629248?gate=5182130005475328
Links to previous Intent discussions
Intent to Prototype:
https://groups.google.com/a/chromium.org/g/blink-dev/c/oCxWg8q_OQYReady for Trial:
https://groups.google.com/a/chromium.org/g/blink-dev/c/49DBcMFjU9Q