ExtendableCookieChangeEvent
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The ExtendableCookieChangeEvent
interface of the Cookie Store API
is the event type passed to ServiceWorkerRegistration.oncookiechange()
when any cookie changes have occurred. 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. In this case
type
is "changed". - A cookie is newly created and immediately removed. In this case
type
is "deleted" - A cookie is removed. In this case
type
is "deleted".
Note: A cookie that is replaced due to the insertion of another cookie with the same name, domain, and path, is ignored and does not trigger a change event.
Constructor
ExtendableCookieChangeEvent.ExtendableCookieChangeEvent()
-
Creates a new
ExtendableCookieChangeEvent
.
Properties
This interface also inherits properties from ExtendableEvent
.
-
ExtendableCookieChangeEvent.changed
Read only -
Returns an array containing the changed cookies.
-
ExtendableCookieChangeEvent.deleted
Read only -
Returns an array containing the deleted cookies.
Examples
In the below example we use CookieStoreManager.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 CookieStoreManager.unsubscribe()
, then subscribe to the cookie with a name of 'COOKIE_NAME' using CookieStoreManager.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); });
Specifications
Specification |
---|
Cookie Store API # ExtendableCookieChangeEvent |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
ExtendableCookieChangeEvent |
87 |
87 |
No |
No |
73 |
No |
87 |
87 |
No |
62 |
No |
14.0 |
ExtendableCookieChangeEvent |
87 |
87 |
No |
No |
73 |
No |
87 |
87 |
No |
62 |
No |
14.0 |
changed |
87 |
87 |
No |
No |
73 |
No |
No |
87 |
No |
62 |
No |
14.0 |
deleted |
87 |
87 |
No |
No |
73 |
No |
87 |
87 |
No |
62 |
No |
14.0 |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ExtendableCookieChangeEvent