/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://cookiestore.spec.whatwg.org/ [Exposed=(ServiceWorker,Window), SecureContext, Pref="dom_cookiestore_enabled"] interface CookieStore : EventTarget { Promise get(USVString name); Promise get(optional CookieStoreGetOptions options = {}); Promise getAll(USVString name); Promise getAll(optional CookieStoreGetOptions options = {}); Promise set(USVString name, USVString value); Promise set(CookieInit options); Promise delete(USVString name); Promise delete(CookieStoreDeleteOptions options); // [Exposed=Window] // attribute EventHandler onchange; }; dictionary CookieStoreGetOptions { USVString name; USVString url; }; enum CookieSameSite { "strict", "lax", "none" }; dictionary CookieInit { required USVString name; required USVString value; DOMHighResTimeStamp? expires = null; USVString? domain = null; USVString path = "/"; CookieSameSite sameSite = "strict"; boolean partitioned = false; }; dictionary CookieStoreDeleteOptions { required USVString name; USVString? domain = null; USVString path = "/"; boolean partitioned = false; }; dictionary CookieListItem { USVString name; USVString value; }; typedef sequence CookieList; [SecureContext] partial interface Window { [SameObject, Pref="dom_cookiestore_enabled"] readonly attribute CookieStore cookieStore; };