Intent to Prototype and Ship: Multi-Screen Window Placement: Fullscreen Companion Window

211 views
Skip to first unread message

Mike Wasserman

unread,
May 9, 2022, 8:35:40 PM5/9/22
to blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser

Contact emails

m...@chromium.org


Explainer

https://github.com/w3c/window-placement/blob/main/EXPLAINER_initiating_multi_screen_experiences.md


Specification

https://github.com/w3c/window-placement/blob/main/EXPLAINER_initiating_multi_screen_experiences.md#spec-changes


Design docs

https://docs.google.com/document/d/1RRlGQharWVnmxKTomfKhNiaeE31L7iXHeXVfifOvwJA


Summary

Fullscreen Companion Window allows sites to place fullscreen content and a popup window on separate screens from a single user activation.


This is a small requested enhancement of the Multi-Screen Window Placement feature: https://chromestatus.com/feature/5252960583942144


Blink component

Blink>Screen>MultiScreen


TAG review

https://github.com/w3ctag/design-reviews/issues/602#issuecomment-1121694034


TAG review status

Pending


Risks


Interoperability and Compatibility

The main risk is that this feature fails to become an interoperable part of the web platform if other browsers do not implement it. Scripted attempts to open a popup window after requesting fullscreen would likely be blocked by user agents that do not implement this feature, even if they implement the basic Multi-Screen Window Placement API.


Gecko: No signal (https://github.com/mozilla/standards-positions/issues/636)


WebKit: No signal (https://lists.webkit.org/pipermail/webkit-dev/2022-May/032223.html)


Web developers: Positive (https://bugs.chromium.org/p/chromium/issues/detail?id=1233970) This functionality is requested by a prominent API partner


Ergonomics

There is currently no way to detect feature support before attempted usage; see https://docs.google.com/document/d/1RRlGQharWVnmxKTomfKhNiaeE31L7iXHeXVfifOvwJA/edit?pli=1#heading=h.vu2lz7aeddz6


Activation

Developers can make immediate use of this API enhancement.


Security

This feature was designed from the ground-up to adhere to the strictest usable security measures possible, as an incremental enhancement of existing web platform APIs. See the design document for details.


WebView application risks

None


Debuggability

Existing mechanisms support debugging fullscreen and popup window open requests.


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

No. An existing automated/manual WPT covers the ability to open cross-screen popups <https://wpt.live/window-placement>. We aim to extend test coverage for this specific scenario soon <https://crbug.com/1323361>.


DevTrial instructions

https://github.com/w3c/window-placement/blob/main/HOWTO.md


Flag name

--enable-blink-features=WindowPlacement


Requires code in //chrome?

True - https://docs.google.com/spreadsheets/d/1QV4SW4JBG3IyLzaonohUhim7nzncwK4ioop2cgUYevw/edit#gid=0&range=34:34


Tracking bug

https://crbug.com/1233970


Launch bug

https://crbug.com/1315615


Sample links

https://michaelwasserman.github.io/window-placement-demo/

(See DevTrial instructions)


Estimated milestones

DevTrial on desktop: 102

Shipping on desktop: 103


Anticipated spec changes

No changes anticipated that would introduce web compat/interop risk 


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5173162437246976


Thomas Steiner

unread,
May 10, 2022, 4:25:09 AM5/10/22
to Mike Wasserman, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser
Hi Mike,

As far as I understand, no developer-facing changes are introduced by this intent, so the article doesn't need changing, unless you want to mention feature detection and how this is in particular not detectable. Please advise.   

Cheers,
Tom


--
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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAN%2BkdQ4FcB_qto8h5GQrA4_ELUUwsyWWKyR0%3DmPsVxftr1uu2g%40mail.gmail.com.


--
Thomas Steiner, PhD—Developer Relations Engineer (https://blog.tomayac.comhttps://twitter.com/tomayac)

Google Germany GmbH, ABC-Str. 19, 20354 Hamburg, Germany
Geschäftsführer: Paul Manicle, Liana Sebastian
Registergericht und -nummer: Hamburg, HRB 86891

----- BEGIN PGP SIGNATURE -----
Version: GnuPG v2.3.4 (GNU/Linux)

iFy0uwAntT0bE3xtRa5AfeCheCkthAtTh3reSabiGbl0ck0fjumBl3DCharaCTersAttH3b0ttom.hTtPs://xKcd.cOm/1181/
----- END PGP SIGNATURE -----

Mike Wasserman

unread,
May 12, 2022, 12:54:40 PM5/12/22
to Thomas Steiner, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser
Hey Thomas,

We don't necessarily need to change the web.dev article at this point, but following up to explore API progress and related enhancements (e.g. Fullscreen Capability Delegation) might be valuable to developers. Let's sync up soon.

Thanks,
Mike

Sean Voisen

unread,
May 20, 2022, 12:11:48 PM5/20/22
to blink-dev, Mike Wasserman, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser, Thomas Steiner
Hi all — I'd just like to share a note of support for this enhancement to the API from Adobe and the Frame.io team. With the multi-screen window placement API, we can give users with multiple monitors the option to put the player on one monitor in full-screen, with media browsing and commenting on another screen. (This could include popups on the non-full-screen monitor as per the enhancement.) For our users, this will be a welcome improvement - especially for editors who are quite accustomed to reserving one monitor for their “program monitor”.

Thanks!
Sean

Mike Taylor

unread,
May 23, 2022, 10:48:14 AM5/23/22
to Mike Wasserman, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser
Hi Mike, can you help me understand the relationship of this work to Fullscreen capability delegation? Is the difference just 1 vs many screens?

--

Mike Wasserman

unread,
May 23, 2022, 1:33:41 PM5/23/22
to Mike Taylor, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser
Sure! Hopefully this explanation helps clarify that relationship:

1) Fullscreen companion window allows a frame with window-placement permission to request fullscreen on one screen, and open a popup window on another screen, from a single transient user activation.
This enables a single click to initiate a fairly compelling multi-screen content experience. We loosely envision someday launching additional enhancements.

2) Fullscreen capability delegation allows a frame to relinquish its transient user activation, in order to permit another frame (e.g. child, opener, opened popup, sibling) to request fullscreen.
This adds some value for single-screen devices, but even more on multi-screen devices, where a companion window could offer controls for the fullscreen window.

I should note that calling Element.requestFullscreen({screen:targetScreen}) can be used to move already-fullscreen content to another screen, and that requires transient user activation.
So, used together, capability delegation allows a gesture on a companion window to "swap" the displays used for fullscreen and companion windows.

Yoav Weiss

unread,
May 25, 2022, 4:55:09 AM5/25/22
to blink-dev, Mike Wasserman, Ajay Rahatekar, Ben Morss, Brad Triebwasser
Are there PRs that define the new processing models for this?

Mike Wasserman

unread,
May 25, 2022, 6:01:24 PM5/25/22
to Yoav Weiss, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser
Thanks for asking! Here is an initial draft PR, now out for review: <https://github.com/w3c/window-placement/pull/101>
An alternate formulation might extend HTML's Tracking User Activation models <https://html.spec.whatwg.org/multipage/interaction.html#tracking-user-activation> and refine the use of those models in individual APIs.

Yoav Weiss

unread,
Jun 8, 2022, 3:01:17 AM6/8/22
to blink-dev, Mike Wasserman, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser, Yoav Weiss
What's blocking the PR from landing?

Mike Wasserman

unread,
Jun 8, 2022, 5:09:46 AM6/8/22
to Yoav Weiss, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser
A requested reviewer has been short on time recently (OOO, work travel, holiday). I sent a friendly ping.


--
You received this message because you are subscribed to a topic in the Google Groups "blink-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/a/chromium.org/d/topic/blink-dev/Fv63upuTXMA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/03452ca2-a281-4c36-a188-ecb2ed33ef44n%40chromium.org.

Mike Wasserman

unread,
Jun 8, 2022, 11:46:48 AM6/8/22
to Yoav Weiss, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser
The PR has been merged into the latest Multi-Screen Window Placement Editor's Draft; thanks.

Mike Taylor

unread,
Jun 8, 2022, 11:57:59 AM6/8/22
to Mike Wasserman, Yoav Weiss, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser
LGTM1
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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEsbcpU0L14DQC6R395xSHPB38dxh6Dg1RimtZfS-QBOi-vR5w%40mail.gmail.com.


Yoav Weiss

unread,
Jun 8, 2022, 11:58:47 AM6/8/22
to Mike Taylor, Mike Wasserman, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser
LGTM2

Chris Harrelson

unread,
Jun 8, 2022, 12:21:45 PM6/8/22
to Yoav Weiss, Mike Taylor, Mike Wasserman, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser

Mike Wasserman

unread,
Jun 8, 2022, 2:07:18 PM6/8/22
to Chris Harrelson, Yoav Weiss, Mike Taylor, blink-dev, Ajay Rahatekar, Ben Morss, Brad Triebwasser
Thank you for the thoughtful reviews!
Reply all
Reply to author
Forward
0 new messages