ExtendableCookieChangeEvent
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only insecure contexts (HTTPS), in some or allsupporting browsers.
Note: This feature is only available inService Workers.
TheExtendableCookieChangeEvent interface of theCookie Store API is the event type passed tocookiechange event fired at theServiceWorkerGlobalScope when any cookie changes occur which match the service worker's cookie change subscription list. A cookie change event consists of a cookie and a type (either "changed" or "deleted").
Cookie changes that cause theExtendableCookieChangeEvent to be dispatched are:
- A cookie is newly created and not immediately removed, or if a cookies is replaced.In this case
typeis "changed". - A cookie is newly created and immediately removed.In this case
typeis "deleted" - A cookie is removed. In this case
typeis "deleted".
In this article
Constructor
ExtendableCookieChangeEvent()Creates a new
ExtendableCookieChangeEvent.
Instance properties
This interface also inherits properties fromExtendableEvent.
ExtendableCookieChangeEvent.changedRead onlyReturns an array containing the changed cookies.
ExtendableCookieChangeEvent.deletedRead onlyReturns an array containing the deleted cookies.
Instance methods
This interface also inherits methods fromExtendableEvent.
Examples
In the below example, we useCookieStoreManager.getSubscriptions() to get a list of existing subscriptions. (In service workers, a subscription is required in order to listen for events.) We unsubscribe from existing subscriptions usingCookieStoreManager.unsubscribe(), then subscribe to the cookie with a name of 'COOKIE_NAME' usingCookieStoreManager.subscribe(). If that cookie is changed, the event listener logs the event to the console. This will be anExtendableCookieChangeEvent object, with thechanged ordeleted property containing the modified cookie.
self.addEventListener("activate", (event) => { event.waitUntil(async () => { const subscriptions = await self.registration.cookies.getSubscriptions(); await self.registration.cookies.unsubscribe(subscriptions); await self.registration.cookies.subscribe([ { name: "COOKIE_NAME", }, ]); });});self.addEventListener("cookiechange", (event) => { console.log(event);});Specifications
| Specification |
|---|
| Cookie Store API> # ExtendableCookieChangeEvent> |