Document: hasStorageAccess() メソッド

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.

hasStorageAccess()Document インターフェイスのメソッドで、この文書がサードパーティ分離されたクッキーへのアクセス権を持っているかどうかを示す論理値で解決する Promise を返します。

詳しくは ストレージアクセス API を参照してください。

メモ: このメソッドは Document.hasUnpartitionedCookieAccess() の別名です。Document.hasUnpartitionedCookieAccess() のためにこのメソッドを削除する予定はありません。

構文

js
hasStorageAccess()

引数

なし。

返値

文書がサードパーティ Cookie にアクセスできるかどうかを示す論理値で解決する Promise です。サードパーティ Cookie にアクセスできる場合は true、できない場合は false です。

このメソッドが返す結果は、状況によっては不正確なことがあります。

  1. ユーザーがサードパーティクッキーをブロックするブラウザー設定をアクティブにしている場合があります。この場合、サードパーティのクッキーにはまだアクセスできないにもかかわらず、true が返されるかもしれません。このような状況を処理するには、クッキーの値が回復不可能になるようなエラーを適切に処理しなければなりません。例えば、個人設定へのアクセスがブロックされていることをユーザーに知らせ、それを使用するには再度サインインするよう促してください。
  2. ブラウザーは既定で、サードパーティクッキーへのアクセスをブロックしない場合があります。この場合、サードパーティクッキーがアクセス可能であっても false が返されるかもしれませんし、ストレージへのアクセスは(つまり Document.requestStorageAccess() を通して)リクエストされる必要はないでしょう。この課題を回避するには、Document.cookie に問い合わせてクッキーがアクセス可能かどうかを探し、アクセス可能でない場合は Document.requestStorageAccess() を呼び出します。

メモ: プロミスが解決され、関数が元々呼び出されたときにユーザージェスチャーイベントが処理されていた場合、解決ハンドラーはユーザーによるジェスチャーが処理されているかのように実行サレルるので、ユーザーによるアクティブ化が要求される API を呼び出すことができます。

例外

InvalidStateError DOMException

現在の Document がまだアクティブでない場合に発生します。

js
document.hasStorageAccess().then((hasAccess) => {
  if (hasAccess) {
    // ストレージへのアクセスはすでに許可されています。
    console.log("クッキーへのアクセスが許可されました");
  } else {
    // ストレージへのアクセスはまだ許可されていません。
    // requestStorageAccess() を呼び出す必要があります。
    console.log("クッキーへのアクセスが拒否されました");
  }
});

メモ: より完全な例は、ストレージアクセス API の使用を参照してください。

仕様書

Specification
The Storage Access API
# dom-document-hasstorageaccess

ブラウザーの互換性

BCD tables only load in the browser

関連情報