https://github.com/explainers-by-googlers/html-fullscreen-without-a-gesture
https://fullscreen.spec.whatwg.org/#dom-element-requestfullscreen
Internal; will expand Explainer during prototyping.
https://docs.google.com/document/d/1yO5Ixgp6VNfYpGrqxezUmLaM-g_ZPGb16bxQ6_q9ln4
A new "Automatic Fullscreen" content setting permits Element.requestFullscreen() without a user gesture [1].
The setting is blocked by default. Users can allow Isolated Web Apps [2], and enterprise admins can allow additional origins.
Combined with Window Management permission [3] and unblocked popups [4], this unlocks valuable fullscreen capabilities:
- Open a fullscreen popup on another display, from one gesture
- Show fullscreen content on multiple displays from one gesture
- Show fullscreen content on a new display, when it's connected
- Swap fullscreen windows between displays with one gesture
- Show fullscreen content after user gesture expiry or consumption
[1] Also window.open()'s experimental 'fullscreen' feature; see https://chromestatus.com/feature/6002307972464640
[2] User control is initially scoped to security-sensitive apps; see https://chromestatus.com/feature/5146307550248960
[3] For multi-screen window placement features; see https://chromestatus.com/feature/5252960583942144
[4] To waive window.open()'s own user gesture requirements; see chrome://settings/content/popups
Some web apps (e.g. finance, gaming, point-of-sale, signage, and presentation) require multi-screen fullscreen from one gesture.
Virtual Desktop Infrastructure (VDI) clients also require fullscreen without a gesture to:
- Automatically extend a fullscreen desktop session onto a newly connected display
- Request fullscreen after transient activation expiry, e.g. slow remote host response
- Apply remote app fullscreen state locally, e.g. on app launch or system events
- Restore fullscreen on local display changes, local user session unlocks, other local OS Window Manager interruptions
https://github.com/whatwg/fullscreen/issues/234
N/A; this is not proposing a new or changed web API, but a browser-specific permission configuration.
Element.requestFullscreen() may now succeed instead of rejecting without transient activation. The design doc considers some nuanced windowing corner cases. This feature is initially only available to security-sensitive apps and enterprise allow-listed origins.
Gecko & WebKit: N/A; this is not proposing a new or changed web API, but a browser-specific permission configuration.
Web developers: Positive.
Requested by 1st and 3rd party partners, particularly around VDI:
https://github.com/w3c/window-management/issues/7 https://github.com/w3c/window-management/issues/98 https://github.com/w3c/window-management/issues/92
Users or admins must grant the new Automatic Fullscreen content setting, plus the Popups & Redirects content setting and the Window Management permission, and to take full advantage of fullscreen windowing features.
This capability exacerbates preexisting fullscreen usable security concerns, so sites cannot show a permission prompt, and user controls are initially scoped to IWA contexts.
None
Sites can debug via Element.requestFullscreen()'s promise, which may reject with a TypeError containing a message, supplemented by devtools console messages. Transient activation state is exposed via navigator.userActivation.isActive. Script can check the window.location.href's scheme for `isolated-app:` to assess initial availability of user control for the current context.
No. WPT coverage is not yet available, and necessitates test driver controls for this new content setting.
chrome://flags/#automatic-fullscreen-content-setting
AutomaticFullscreenContentSetting
True; for content settings and enterprise policy management.
https://bugs.chromium.org/p/chromium/issues/detail?id=1501130
https://launch.corp.google.com/launch/4296344
Blink.UseCounter.Features: kFullscreenAllowedByContentSetting
Feature is used by specific partner(s) to provide functionality within 12 months of launch in Chrome
Shipping on desktop 126
DevTrial on desktop 123