Thanks! I pinged the PR, and hope for some feedback there soon. Feature detection via Permissions API querying seems like a great follow up here, ideally alongside broadened feature availability (i.e. extending user control beyond Isolated Web Apps).
On Tue, May 14, 2024 at 1:43 PM Mike Taylor <miketa...@chromium.org> wrote: > It would be nice for the PR to be reviewed and approved, even without > other stakeholder support. > > Additionally - the explainer mentions a few options for feature detection. > Any progress on that front? Or is it just hypothetical? > On 5/9/24 3:04 PM, Mike Wasserman wrote: > > Sure. I'll note that whatwg/fullscreen's PR merging includes a question or > criteria "At least two implementers are interested (and none opposed)". > I have filed standards position requests with Mozilla and WebKit, and I > will ping fullscreen spec maintainers for input. > > On Thu, May 9, 2024 at 11:39 AM Vladimir Levin <vmp...@chromium.org> > wrote: > >> Ah thanks, I missed it in the explainer. The spec changes make sense to >> me. The changes don't look like they would be controversial, but it's >> probably worthwhile to ensure that this PR is under review and/or landing >> as a part of shipping this. >> >> Thanks! >> Vlad >> >> On Thu, May 9, 2024 at 12:20 PM Mike Wasserman <m...@chromium.org> wrote: >> >>> Yes, there's a draft PR <https://github.com/whatwg/fullscreen/pull/235> >>> with the Explainer's anticipated spec changes >>> <https://github.com/explainers-by-googlers/html-fullscreen-without-a-gesture#spec-changes>, >>> which are designed >>> <https://github.com/explainers-by-googlers/html-fullscreen-without-a-gesture?tab=readme-ov-file#detailed-design-discussion> >>> alike The rules for choosing a navigable >>> <https://html.spec.whatwg.org/multipage/document-sequences.html#the-rules-for-choosing-a-navigable> >>> when a new top-level traversable >>> <https://html.spec.whatwg.org/multipage/document-sequences.html#top-level-traversable> >>> is being requested, as invoked by Window.open() >>> <https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-open-dev>: >>> >>> >>> - If currentNavigable's active window >>> >>> <https://html.spec.whatwg.org/multipage/document-sequences.html#nav-window> >>> does not have transient activation >>> >>> <https://html.spec.whatwg.org/multipage/interaction.html#transient-activation> >>> and the user agent has been configured to not show popups (i.e., the user >>> agent has a "popup blocker" enabled) >>> - The user agent may inform the user that a popup has been >>> blocked. >>> >>> >>> On Thursday, May 9, 2024 at 7:30:09 AM UTC-7 Vladimir Levin wrote: >>> >>>> On Wed, May 8, 2024 at 7:46 PM Mike Wasserman <m...@chromium.org> wrote: >>>> >>>>> Contact emails >>>>> >>>>> m...@chromium.org, fugu-...@chromium.org >>>>> >>>>> Explainer >>>>> >>>>> >>>>> https://github.com/explainers-by-googlers/html-fullscreen-without-a-gesture >>>>> >>>>> Specification >>>>> >>>>> https://fullscreen.spec.whatwg.org/#dom-element-requestfullscreen >>>>> >>>>> Design docs >>>>> >>>>> >>>>> https://github.com/explainers-by-googlers/html-fullscreen-without-a-gesture >>>>> >>>>> Summary >>>>> >>>>> A new "Automatic Fullscreen" content setting permits >>>>> Element.requestFullscreen() without a user gesture, and permits browser >>>>> dialogs to appear without exiting fullscreen. >>>>> >>>>> The setting is blocked by default and sites cannot prompt for >>>>> permission. New UI controls are limited to Chrome's settings pages [1] and >>>>> the site info bubble. Users can allow Isolated Web Apps [2], and >>>>> enterprise >>>>> admins can allow additional origins with the >>>>> AutomaticFullscreenAllowedForUrls policy. >>>>> >>>>> 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] chrome://settings/content/automaticFullScreen and site details >>>>> pages >>>>> >>>>> [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 similarly permit window.open() without a user gesture; see >>>>> chrome://settings/content/popups >>>>> >>>>> Blink component >>>>> >>>>> Blink>Fullscreen >>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EFullscreen> >>>>> >>>>> Search tags >>>>> >>>>> Fullscreen <https://chromestatus.com/features#tags:Fullscreen>, >>>>> requestFullscreen >>>>> <https://chromestatus.com/features#tags:requestFullscreen>, transient >>>>> activation >>>>> <https://chromestatus.com/features#tags:transient%20activation>, user >>>>> gesture <https://chromestatus.com/features#tags:user%20gesture>, content >>>>> setting <https://chromestatus.com/features#tags:content%20setting> >>>>> >>>>> TAG review >>>>> >>>>> N/A. This is not proposing a new or changed web API, but a >>>>> browser-specific permission configuration. >>>>> >>>> >>>> Does this change also need to update the referenced spec? In the spec, >>>> it seems like if there is no transient activation, it results in an error. >>>> I'm trying to understand whether (and how) the spec needs to be updated to >>>> reflect the capability proposed in this intent >>>> >>>> >>>>> Risks Interoperability and Compatibility >>>>> >>>>> 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: No signal ( >>>>> https://github.com/mozilla/standards-positions/issues/1020) >>>>> >>>>> WebKit: No signal ( >>>>> https://github.com/WebKit/standards-positions/issues/345) >>>>> >>>>> 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 >>>>> https://crbug.com/315859364 >>>>> >>>>> Ergonomics >>>>> >>>>> The explainer discusses prospective feature detection support. >>>>> >>>>> Activation >>>>> >>>>> 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. >>>>> >>>>> Security >>>>> >>>>> This capability exacerbates preexisting fullscreen usable security >>>>> concerns, so sites cannot show a permission prompt, and user controls are >>>>> initially scoped to IWA contexts. >>>>> >>>>> WebView application risks >>>>> >>>>> None; this feature is not supported on WebView for now >>>>> >>>>> Debuggability >>>>> >>>>> Sites can debug via Element.requestFullscreen()'s promise, which may >>>>> reject with a TypeError containing a message, the document >>>>> `fullscreenElement` property, document `fullscreenchange` + >>>>> `fullscreenerror` events, and 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. >>>>> >>>>> Will this feature be supported on all six Blink platforms (Windows, >>>>> Mac, Linux, ChromeOS, Android, and Android WebView)? >>>>> >>>>> No; Initial support targets desktop platforms. >>>>> >>>>> Is this feature fully tested by web-platform-tests >>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>>>> ? >>>>> >>>>> No; WPT coverage is not yet available, and necessitates test driver >>>>> controls for this new content setting. >>>>> >>>>> DevTrial instructions >>>>> >>>>> >>>>> https://github.com/explainers-by-googlers/html-fullscreen-without-a-gesture/blob/main/HOWTO.md >>>>> >>>>> Flag name on chrome://flags >>>>> >>>>> chrome://flags/#automatic-fullscreen-content-setting >>>>> >>>>> Finch feature name >>>>> >>>>> AutomaticFullscreenContentSetting >>>>> >>>>> Requires code in //chrome? >>>>> >>>>> True (Chrome settings pages, page info bubble, enterprise policy >>>>> integration) >>>>> >>>>> Tracking bug >>>>> >>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1501130 >>>>> >>>>> Launch bug >>>>> >>>>> https://launch.corp.google.com/launch/4296344 >>>>> >>>>> Measurement >>>>> >>>>> Blink.UseCounter.Features: FullscreenAllowedByContentSetting >>>>> https://chromestatus.com/metrics/feature/timeline/popularity/4835 >>>>> >>>>> Availability expectation >>>>> >>>>> Feature is available only in Chromium browsers for the foreseeable >>>>> future >>>>> >>>>> Adoption expectation >>>>> >>>>> Feature is used by specific partner(s) to provide functionality within >>>>> 12 months of launch in Chrome >>>>> >>>>> Sample links >>>>> >>>>> https://github.com/michaelwasserman/iwa-windowing-example >>>>> >>>>> Estimated milestones >>>>> >>>>> Shipping on desktop 126 >>>>> >>>>> DevTrial on desktop 124 >>>>> >>>>> Anticipated spec changes >>>>> >>>>> >>>>> https://github.com/explainers-by-googlers/html-fullscreen-without-a-gesture#spec-changes >>>>> >>>>> Link to entry on the Chrome Platform Status >>>>> >>>>> https://chromestatus.com/feature/6218822004768768 >>>>> >>>>> Links to previous Intent discussions >>>>> >>>>> I2P: >>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/CuIqA2v3cvs/m/C6J3clNxAAAJ >>>>> >>>>> This intent message was generated by Chrome Platform Status >>>>> <https://chromestatus.com/>. >>>>> >>>>> -- >>>>> 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 blink-dev+unsubscr...@chromium.org. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEsbcpVwU7-73Mux5N-0DwYHNC34d8W5z4Yrfy6Qa_if%3DDxCsQ%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEsbcpVwU7-73Mux5N-0DwYHNC34d8W5z4Yrfy6Qa_if%3DDxCsQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>> 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 blink-dev+unsubscr...@chromium.org. >>> To view this discussion on the web visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/3b8910e6-5c31-4a00-8638-3d6a2a1632d9n%40chromium.org >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/3b8910e6-5c31-4a00-8638-3d6a2a1632d9n%40chromium.org?utm_medium=email&utm_source=footer> >>> . >>> >> -- > 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 blink-dev+unsubscr...@chromium.org. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEsbcpXQRXW_Z2LzdQ%3DSTBf2aLydwrD5TT51XR3qrg4zYT8Nig%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEsbcpXQRXW_Z2LzdQ%3DSTBf2aLydwrD5TT51XR3qrg4zYT8Nig%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > -- 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 blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEsbcpVHcR_X8FuqnT_Qom9GHh6iOukGRscJ8SXkRvvUwjz7bg%40mail.gmail.com.