Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions HOWTO.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,4 @@ async function main() {
- Chrome 103+ supports this enhancement with this flag enabled:
- `chrome --enable-blink-features=CapabilityDelegationFullscreenRequest`

[Accurate Screen Labels](https://chromestatus.com/feature/6317530778959872) refines the `ScreenDetailed.label` implementation by replacing the current placeholder values (e.g. 'External Display 1') with data sourced from display device EDIDs (e.g. 'HP Z27n') and higher-level OS APIs (e.g. language localized 'Built-in Retina Display'). These more accurate labels match those shown by OSes in display settings UI surfaces. Test this by observing the screen label strings displayed in the [window-placement-demo](https://michaelwasserman.github.io/window-placement-demo).
- Chrome 104+ supports this enhancement on some OSes with this flag enabled:
- `chrome --enable-blink-features=WindowPlacementEnhancedScreenLabels`
[Screen Labels](https://w3c.github.io/window-management/#api-screendetailed-interface) are intended to be short, user-facing names that help distinguish displays without exposing stable hardware identifiers. Implementations should prefer generic labels such as 'Built-in Display' or 'Display 2', and avoid exposing monitor model names, serial numbers, vendor branding, or other per-device identifiers. The label may be empty when the user agent cannot provide a non-identifying name for the screen.
4 changes: 2 additions & 2 deletions index.bs
Original file line number Diff line number Diff line change
Expand Up @@ -275,10 +275,10 @@ A [=/screen=] has an <dfn>orientation</dfn>, which is described in [[screen-orie

A [=/screen=] has a <dfn>label</dfn>, which is a string that meaningfully describes the screen to a user to help them identify and differentiate screens.

Note: The [=screen/label=] can be an arbitrary string selected by the user agent. It could describe the screen relative to the device, e.g. `"internal"` vs. `"external"`, it could include the dimensions, e.g. `"640×480"`, it could include hardware model information, e.g. `"Acme Telletube 1000x"` from [VESA E-EDID](https://en.wikipedia.org/wiki/Extended_Display_Identification_Data) data, it could include a distinguishing number, e.g. `"screen 1"` vs. `"screen 2"`, or all of the preceding. The label can be an empty string if underlying display details are unknown or the user agent chooses to hide that information. Applications can't assume that the label contains any specific information, such as the device type, model, dimensions, density, etc.
Note: User agents are expected to minimize entropy in [=screen/label=] values. The label is intended to be a short, user-facing identifier that helps a user distinguish one display from another without disclosing useful fingerprinting data. In particular, user agents <span class=allow-2119>must not</span> include the display's serial number, hardware model or vendor name, or other stable device-identifying metadata in the label. The label can instead use generic names such as `"Built-in Display"`, `"Display 2"`, or a localized equivalent. If no non-identifying label is available, the label can be the empty string.


Advisement: While many screen attributes could be used for [=/active fingerprinting=], the strings used as [=screen/labels=] in particular should be considered carefully to minimize the uniqueness. For example, it would be a poor choice to include the serial number of the device.
Advisement: While many screen attributes could be used for [=/active fingerprinting=], the strings used as [=screen/labels=] in particular should be considered carefully to minimize uniqueness. Labels that include a monitor serial number, model branding, or other per-device identifier would be poor choices and should be avoided.

Issue: Should [=screen/device pixel ratio=] include the [page-zoom](https://drafts.csswg.org/cssom-view-1/#page-zoom)?

Expand Down
7 changes: 7 additions & 0 deletions security_and_privacy.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,13 @@ permission, limited to secure contexts, top-level frames, gated by user gesture,
active window contexts, and other protections to help mitigate concerns around
[fingerprinting](https://w3c.github.io/fingerprinting-guidance).

In particular, `ScreenDetailed.label` should be treated as a short, user-facing
name for display selection rather than as a source of stable hardware
information. User agents should prefer generic labels such as "Built-in
Display" or "Display 2" and avoid exposing monitor model names, serial
numbers, or other per-device identifiers that would increase the fingerprinting
surface.

The amount of information exposed to a given site would be at the discretion of
users and their agents. Exposing the full set of proposed information (with user
permission) enables web applications to offer compelling functionality, but
Expand Down