Intent to Implement: Screen Enumeration

105 views
Skip to first unread message

Staphany Park

unread,
Sep 12, 2019, 12:17:47 PM9/12/19
to blink-dev
stap...@chromium.org,m...@chromium.org https://github.com/spark008/screen-enumeration/blob/master/EXPLAINER.md TBD https://github.com/w3ctag/design-reviews/issues/413 Exposes a list of the displays connected to the user's computer and a set of properties for each display. A display usually has a 1:1 correspondence with a physical or virtual monitor. Since it is common to use more than one monitor, it is important to give Web developers the tools to make their applications perform well across multiple displays that may have differing properties. This API provides the foundation for other new APIs like the Window Placement API (https://github.com/spark008/window-placement/blob/master/EXPLAINER.md - expect a follow-up I2I for this soon), which would enable many powerful multi-display windowing behaviors. Use cases that these 2 APIs would enable include: * Slide show presentation: Opening the presentation, speaker notes, and presenter controls on the most appropriate monitor for each window. * Finance applications with multiple dashboards: Starting the app (re-)opens all the dashboards across multiple monitors. Currently, the only way for Web developers to get display properties for all connected displays is via the Chrome Apps API.
This API has been designed to support feature detection, so applications should be able to handle different levels of browser support. Firefox: No public signals Edge: No public signals Safari: No public signals Web developers: Positive This API is expected to provide the foundation for much of the Window Placement API, which is also in the proposal stage, but it can be implemented and used without the Window Placement API. There is a risk that the Screen Enumeration API would not provide much value on its own, without the Window Placement API. In a scenario where the Window Placement API does not yet exist, the Screen Enumeration API may still get traction as a more powerful version of the existing Screen interface, given that it exposes more display properties and is exposed on both Window and Worker execution contexts. Enumerating the displays connected to the user's computer is a fingerprinting concern. We mitigate this concern by gating the API behind a permission prompt, only exposing the API on secure contexts, and being selective about which display properties are included. For more information, see the W3C Security & Privacy Self-Review Questionnaire: https://github.com/spark008/screen-enumeration/blob/master/security_and_privacy.md.
No All Blink platforms may run on a device that is connected to multiple displays, so applications that build multi-display features may expect those features to work on any platform. This API will not be supported on Android WebView because developers have primarily voiced interest for use cases in desktop applications, and added complexity in supporting the permission prompt on Android WebView. All other Blink platforms will be supported. Yes The WPT tests currently have a basic test to illustrate the single-display case with a subset of the display properties: https://wpt.fyi/results/screen_enumeration. This test covers the shape and return type of the API which reduces the risk of any obvious browser interoperability issues. We do not plan to add WPT tests to cover the multi-display case. https://chromestatus.com/feature/5751531208966144
This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages