Cookie Store API

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

Cookie Store API は Cookie を管理するための非同期 API を提供し、同時に Cookie を Service Worker API から参照できるようにします。

概念と使用法

Cookie の取得や設定を行うこれまでの方法は、文字列であるキーと値のペアとして document.cookie を扱うことでした。面倒で間違えやすい上に、モダンなウェブ開発の文脈では問題のもとになります。

document.cookie インターフェイスは同期的で、シングルスレッドで、イベントループをブロックします。Cookie に書き込みを行うとき、ブラウザーがすべての Cookie の文字列を更新するまで待たなければいけません。さらに、document に依存しているので、document オブジェクトにアクセスできないサービスワーカーからは Cookie にアクセスできません。

Cookie Store API は、Cookie を管理する新しい方法を提供します。これは非同期的でプロミスベースなので、イベントループをブロックしません。document に依存していないため、サービスワーカーから利用可能です。Cookie の取得や設定を行うメソッドは、エラーメッセージにより、より多くのフィードバックを提供します。これにより、ウェブ開発者は Cookie を設定した直後に読み込みを行って設定に成功したかを確認しなくてよくなります。

インターフェイス

CookieStore

CookieStore インターフェイスは、Cookie の取得や設定を可能にします。

CookieStoreManager

CookieStoreManager インターフェイスは、サービスワーカーが Cookie 変更イベントを購読できるよう、サービスワーカーの登録を提供します。

CookieChangeEvent

change という名前の CookieChangeEvent は、スクリプトから参照可能な Cookie の変更が何か起こると、Window コンテキストの CookieStore オブジェクトで発行されます。

ExtendableCookieChangeEvent

change という名前の ExtendableCookieChangeEvent は、スクリプトから参照可能かつサービスワーカーの Cookie 変更購読リストにマッチする Cookie の変更が何か起こると、ServiceWorkerGlobalScope イベントで発行されます。

仕様書

Specification
Cookie Store API

ブラウザーの互換性

api.CookieStore

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
CookieStore
change event
delete
partitioned option
get
domain in return value
expires in return value
name in return value
partitioned in return value
Experimental
path in return value
sameSite in return value
secure in return value
value in return value
getAll
domain in return value
expires in return value
name in return value
partitioned in return value
Experimental
path in return value
sameSite in return value
secure in return value
value in return value
set
partitioned option

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.

api.CookieStoreManager

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
CookieStoreManager
getSubscriptions
subscribe
unsubscribe

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support