Non-cookie storage accessLimited availability
Non-cookie storage access extends the requestStorageAccess() API to let content in cross-site iframes request access to first-party data beyond cookies.
Not yet supported in all major browsers — check the table and provide a fallback.
Browser support
DesktopChrome
1–124Not supported
125+Supportedsince May 14, 2024
Current: 155Edge
✕Not supportedup to 154
Current: 154Firefox
✕Not supportedup to 157
Current: 157Safari
✕Not supportedup to 27
Current: 27MobileChrome Android
✕Not supportedup to 155
Current: 155Firefox Android
✕Not supportedup to 157
Current: 157Safari iOS
✕Not supportedup to 27
Current: 27How to use
Not supported in Edge, Firefox, Safari, Chrome Android, Firefox Android, Safari iOS. Use feature detection below and provide a fallback (or a polyfill) for those browsers.
Example
Full syntax and examples are on MDN: hasUnpartitionedCookieAccess.
Feature detection
JS · check before using
if ("Document" in globalThis && "requestStorageAccess" in Document.prototype) {
// Document.requestStorageAccess is available
}Sub-features
Support for each part of the feature (28). The overall table above shows when the whole feature works.
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| Document.hasUnpartitionedCookieAccess | 125 | 125 | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_BroadcastChannel_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_SharedWorker_parameter | 125 | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_all_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_caches_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_cookies_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_createObjectURL_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_estimate_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_getDirectory_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_indexedDB_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_localStorage_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_locks_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_revokeObjectURL_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| Document.requestStorageAccess.types_parameter.types_sessionStorage_parameter | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| SharedWorker.SharedWorker.options_sameSiteCookies_parameter | 125 | ✕ | ✕ | ✕ | 148 | ✕ | ✕ |
| StorageAccessHandle | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| StorageAccessHandle.BroadcastChannel | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| StorageAccessHandle.SharedWorker | 125 | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| StorageAccessHandle.caches | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
Show 8 more
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| StorageAccessHandle.createObjectURL | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| StorageAccessHandle.estimate | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| StorageAccessHandle.getDirectory | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| StorageAccessHandle.indexedDB | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| StorageAccessHandle.localStorage | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| StorageAccessHandle.locks | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| StorageAccessHandle.revokeObjectURL | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |
| StorageAccessHandle.sessionStorage | 125 | ✕ | ✕ | ✕ | 125 | ✕ | ✕ |