Most browsers grant a single origin a slice of disk — usually a few hundred MB on the low end, up to ~60% of free disk space on Chrome — shared across localStorage, sessionStorage, IndexedDB, Cache Storage, the File System Access API, and Service Worker registrations. This page calls navigator.storage.estimate() for the total and adds up each individual API for a per-bucket breakdown.
Persistence only affects this origin. "Clear all" wipes localStorage, sessionStorage, cookies (this origin only), every IndexedDB database we can list, and every Cache Storage bucket. Use it to start fresh while testing.
| Bucket | Items | Approx size | Status |
|---|
Sizes for localStorage/sessionStorage/cookies are measured directly (UTF-16 byte count). IndexedDB and Cache Storage sizes are estimated by serializing each record/response — the engine's on-disk overhead, indexes, and compression are not captured.
Write a chunk of data to a bucket and watch the numbers move. The data is keyed under __quota-tester__ so the Clear button can find it.
navigator.storage.getDirectory(). Counts against quota; sizes not walked here (would be slow on large trees).storage.estimate().navigator.storage.persist() to request persistent storage; if granted, the origin survives quota pressure.