← Back to release summary

Update Device Memory API limits

Category
Performance
Type
New or changed feature
Status
Proposed (Chrome Proposed)
Intent stage
None

Summary

Update to a new set of possible values for the Device Memory API: - Android: 1, 2, 4, 8 - Others: 2, 4, 8, 16, 32 Replacing the old values of 0.25, 0.5, 1, 2, 4, 8 which have grown outdated. This will reduce the fingerprinting risks at the lower end since device capabilities have improved since these were set. It will also allow better usage and segmenting of high-end devices as requested by developers (https://github.com/w3c/device-memory/issues/50).

Motivation

The Device Memory API defines a HTTP Client Hint header and a JavaScript API to surface device capability for memory i.e. device RAM, in order to enable web apps to customize content depending on device memory constraints. To reduce the risk of fingerprinting the amount of RAM reported is coarsened to the nearest power-of-two value, and also capped at a lower amount and an upper amount. In Chrome this meant the possible values were one of: 0.25, 0.5, 1, 2, 4, 8, which was based on common device capabilities at the time the API was introduced. Device capabilities have improved and the lower limits (0.25, 0.5, and even 1) are seen far less frequently, so now have an increased fingerprinting risk. At the same time, the upper limit of 8 is constrictive beyond mobile since it buckets a larger group of devices and new capabilities (such as LLMs) mean developers would like to segment further.

Standards & signals

Explainers: https://github.com/w3c/device-memory/issues/50

View on chromestatus.com