You do not have permission to delete messages in this group
Report message as abuse
Sign in to report message as abuse
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
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.
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.
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.