web api interface
ExtendableCookieChangeEvent
Secure contextAvailable in workers
The ExtendableCookieChangeEvent interface of the Cookie Store API is the event type passed to cookiechange event fired at the ServiceWorkerGlobalScope 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 the ExtendableCookieChangeEvent 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”.
Constructor
ExtendableCookieChangeEvent()- : Creates a new
ExtendableCookieChangeEvent.
- : Creates a new
Instance properties
This interface also inherits properties from ExtendableEvent.
changedRead only- : Returns an array containing the changed cookies.
deletedRead only- : Returns an array containing the deleted cookies.
Instance methods
This interface also inherits methods from ExtendableEvent.
Examples
In the below example, we use 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 using unsubscribe(), then subscribe to the cookie with a name of ‘COOKIE_NAME’ using subscribe(). If that cookie is changed, the event listener logs the event to the console. This will be an ExtendableCookieChangeEvent object, with the changed or deleted 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);
});