v151 · Storage · Quota Estimate Demo
Quota Estimate Demo
Call navigator.storage.estimate() and inspect the quota and usage values. In Chrome 151+ the quota is identical in normal and Incognito mode — the privacy-leaking RAM-based value is gone.
Chrome 151 required for the fix. Open this page in both a normal tab and an Incognito tab. On Chrome 151+ both should show a quota in the GiB range. On earlier Chrome, Incognito shows a much smaller RAM-based quota — often around 120 MB — which is the fingerprint vector.
live estimate
code
const before = await navigator.storage.estimate();
const cache = await caches.open('quota-estimate-demo-v151');
const fiveMiBBlob = new Blob([new Uint8Array(5 * 1024 ** 2)]);
await cache.put('/sample.bin?run=' + Date.now(), new Response(fiveMiBBlob));
const estimate = await navigator.storage.estimate();
console.log({
quota: estimate.quota, // bytes
usage: estimate.usage, // bytes currently in use
delta: estimate.usage - before.usage,
quotaGiB: (estimate.quota / 1024 ** 3).toFixed(2)
});
// Chrome 151 fix: quota is now >= 10 GiB in both normal AND Incognito
// Before: Incognito could return ~120 MB (RAM-fraction), easily detected
see also
- Privacy Leak Explainer — how the original detection worked
- ChromeStatus entry
- MDN — StorageManager.estimate()
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗