CookieStoreManager

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The CookieStoreManager interface of the 'Cookie Store API' allows service workers to subscribe to cookie change events. Call subscribe() on a particular service worker registration to receive change events.

A CookieStoreManager has an associated ServiceWorkerRegistration. Each service worker registration has a cookie change subscription list, which is a list of cookie change subscriptions each containing a name and URL. The methods in this interface allow the service worker to add and remove subscriptions from this list, and to get a list of all subscriptions.

To get a CookieStoreManager, call ServiceWorkerRegistration.cookies.

Methods

CookieStoreManager.getSubscriptions()

Returns a promise which resolves to a list of the cookie change subscriptions for this service worker registration.

CookieStoreManager.subscribe()

Subscribes to changes to cookies. It returns a promise which resolves when the subscription is successful.

CookieStoreManager.unsubscribe()

Unsubscribes the registered service worker from changes to cookies. It returns a promise which resolves when the operation is successful.

Examples

In this example the ServiceWorkerRegistration represented by registration is subscribing to change events on the cookie named "cookie1" with a scope of "/path1".

const subscriptions = [{ name: 'cookie1', url: `/path1` }];
await registration.cookies.subscribe(subscriptions);

If the ServiceWorkerRegistration has subscribed to any cookies then getSubscriptions() will return a list of cookies represented by objects in the same format as used for the original subscription.

const subscriptions = await registration.cookies.getSubscriptions();

Specifications

Specification
Cookie Store API
# cookiestoremanager

Browser compatibility

BCD tables only load in the browser