Contact emails
[email protected], [email protected]

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 (eg 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.


Is this feature fully tested by web-platform-tests?
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 (eg links to known github issues in the project 
for the feature specification) whose resolution may introduce web 
compat/interop risk (eg, 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_OQY
Ready for Trial: 
https://groups.google.com/a/chromium.org/g/blink-dev/c/49DBcMFjU9Q



This intent message was generated by Chrome Platform Status.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6aa0f6ab.81999fdc.3b7fb5.022b.GAE%40google.com.

Reply via email to