CookieChangeEvent: changed property

Baseline 2025
Newly available

Since June 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

The changed read-only property of the CookieChangeEvent interface returns an array of the cookies that have been changed.

Note that this will exclude cookies which were created with an expiry date in the past, as these cookies are immediately deleted.

Value

An array of objects containing the changed cookie(s). Each object contains the following properties:

name

A string containing the name of the cookie.

value

A string containing the value of the cookie.

domain

A string containing the domain of the cookie.

path

A string containing the path of the cookie.

expires

A timestamp, given as Unix time in milliseconds, containing the expiration date of the cookie.

secure

A boolean indicating whether the cookie is used only in a secure context (HTTPS rather than HTTP).

sameSite

One of the following SameSite values:

"strict"

Cookies will only be sent in a first-party context and not be sent with requests initiated by third party websites.

"lax"

Cookies are not sent on normal cross-site subrequests (for example to load images or frames into a third party site), but are sent when a user is navigating within the origin site (i.e., when following a link).

"none"

Cookies will be sent in all contexts.

partitioned

A boolean indicating whether the cookie is a partitioned cookie (true) or not (false). See Cookies Having Independent Partitioned State (CHIPS) for more information.

Examples

In this example, when the cookie is set, the event listener logs the changed property to the console. The first item in that array contains an object representing the cookie that has just been set.

js
cookieStore.addEventListener("change", (event) => {
  console.log(event.changed[0]);
});

const oneDay = 24 * 60 * 60 * 1000;
cookieStore.set({
  name: "cookie1",
  value: "cookie1-value",
  expires: Date.now() + oneDay,
  domain: "example.com",
});

Specifications

Specification
Cookie Store API
# dom-cookiechangeevent-changed

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
changed
Chrome – Full support
Chrome 87 (Release date: 2020-11-17)
footnote Full support
Edge – Full support
Edge 87 (Release date: 2020-11-19)
footnote Full support
Firefox – Full support
Firefox 140 (Release date: 2025-06-24)
footnote Full support
Opera – Full support
Opera 73 (Release date: 2020-12-09)
footnote Full support
Safari – Full support
Safari 18.4 (Release date: 2025-03-31)
footnote Full support
Chrome Android – Full support
Chrome Android 87 (Release date: 2020-11-17)
footnote Full support
Firefox for Android – Full support
Firefox for Android 140 (Release date: 2025-06-24)
footnote Full support
Opera Android – Full support
Opera Android 62 (Release date: 2021-02-16)
footnote Full support
Safari on iOS – Full support
Safari on iOS 18.4 (Release date: 2025-03-31)
footnote Full support
Samsung Internet – Full support
Samsung Internet 14 (Release date: 2021-04-17)
footnote Full support
WebView Android – Full support
WebView Android 87 (Release date: 2020-11-17)
footnote Full support
WebView on iOS – Full support
WebView on iOS 18.4 (Release date: 2025-03-31)
footnote Full support

Legend

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

Full support
Full support