v151 · storage · privacy · bug fix
IncognitoStaticStorageQuota
Chrome 151 patches a residual Incognito detection vector in the predictable-storage-quota rollout: by returning a truly static quota from navigator.storage.estimate() in Incognito mode, rather than a value that still leaks information about the user's actual disk size.
at a glance
| Shipped in | Chrome 151 (Enabled by default) |
|---|---|
| Status | Enabled by default |
| API change | None — behavioural fix to StorageManager.estimate() |
| Related feature | v148: Predictable reported storage quota |
| ChromeStatus | 5143175657291776 — IncognitoStaticStorageQuota |
why it exists
Chrome 148 introduced Predictable reported storage quota, which changed navigator.storage.estimate() to return an artificial quota value — usage + min(10 GiB, disk rounded up to 1 GiB) — to prevent Incognito detection. However, the formula still exposes a signal: in Incognito mode, the "disk rounded up to 1 GiB" component reflects the device's actual disk size, which differs between a laptop with a 256 GB drive and one with a 2 TB drive. A script that sees this variation can still distinguish Incognito users on specific hardware configurations.
Chrome 151 fixes this by substituting a fixed static value for the quota in Incognito mode, removing the disk-size signal entirely. The fix only affects Incognito; regular windows with limited storage continue to use the Chrome 148 formula unchanged.
Source: chromestatus feature summarywhat changes
| Context | Chrome 148–150 | Chrome 151+ |
|---|---|---|
| Incognito, limited-storage site | usage + min(10 GiB, disk ↑ 1 GiB) | Fixed static value (no disk-size signal) |
| Regular window, limited-storage site | usage + min(10 GiB, disk ↑ 1 GiB) | Unchanged |
| Any window, unlimited-storage site | Real quota | Unchanged |
example
No code changes are needed. navigator.storage.estimate() continues to work as before:
const { usage, quota } = await navigator.storage.estimate();
// quota is now fully static in Incognito (Chrome 151+)
// usage is always the real bytes-used value (unchanged)
const pct = (usage / quota) * 100;
if (pct > 80) warnLowStorage();
Source: Storage Living Standard §StorageManager.estimate()