Document: hasStorageAccess() method
Baseline 2023
Newly available
Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
The hasStorageAccess()
method of the Document
interface returns a Promise
that resolves with a boolean value indicating whether the document has access to third-party, unpartitioned cookies.
This method is part of the Storage Access API.
Note: This method is another name for Document.hasUnpartitionedCookieAccess()
. There are no current plans to remove this method in favor of Document.hasUnpartitionedCookieAccess()
.
Syntax
hasStorageAccess()
Parameters
None.
Return value
A Promise
that resolves with a boolean value indicating whether the document has access to third-party cookies — true
if it does, and false
if not.
The result returned by this method can be inaccurate in a couple of circumstances:
- The user may have active browser settings that block third-party cookies; in this case,
true
may be returned even though third-party cookies are still inaccessible. To handle such a situation, you should gracefully handle any errors resulting in cookie values being unretrievable; for example, inform the user that access to their personalized settings is blocked and invite them to sign in again to use them. - The browser might not block third-party cookie access by default; in this case,
false
may be returned even though third-party cookies are accessible, and storage access wouldn't need to be requested (i.e., viaDocument.requestStorageAccess()
). To get around this issue, you could queryDocument.cookie
to find out whether your cookies are accessible, and callDocument.requestStorageAccess()
if they are not.
Note: If the promise gets resolved and a user gesture event was being processed when the function was originally called, the resolve handler will run as if a user gesture was being processed, so it will be able to call APIs that require user activation.
Exceptions
InvalidStateError
DOMException
-
Thrown if the current
Document
is not yet active.
Examples
document.hasStorageAccess().then((hasAccess) => {
if (hasAccess) {
// storage access has been granted already.
console.log("cookie access granted");
} else {
// storage access hasn't been granted already;
// you may want to call requestStorageAccess().
console.log("cookie access denied");
}
});
Note: See Using the Storage Access API for a more complete example.
Specifications
Specification |
---|
The Storage Access API # dom-document-hasstorageaccess |
Browser compatibility
BCD tables only load in the browser