Document: hasStorageAccess() method

{{APIRef("Storage Access API")}}
The 
hasStorageAccess() method of the {{domxref("Document")}} interface returns a {{jsxref("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 {{DOMxRef("Document.hasUnpartitionedCookieAccess()")}}. There are no current plans to remove this method in favor of {{DOMxRef("Document.hasUnpartitionedCookieAccess()")}}.
Syntax
hasStorageAccess()
Parameters
None.
Return value
A {{jsxref("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., via {{domxref("Document.requestStorageAccess()")}}). To get around this issue, you could query {{domxref("Document.cookie")}} to find out whether your cookies are accessible, and call {{domxref("Document.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 {{domxref("DOMException")}}
: Thrown if the current {{domxref("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
{{Specifications}}
Browser compatibility
{{Compat}}
See also
{{domxref("Document.hasUnpartitionedCookieAccess()")}}, {{domxref("Document.requestStorageAccess()")}}, {{domxref("Document.requestStorageAccessFor()")}}
Using the Storage Access API
Introducing Storage Access API (WebKit blog)