blob: 6d4f35973cb5ff46326ee08ddf7b9ebd57253779 [file] [log] [blame]
// https://github.com/WICG/cookie-store/blob/gh-pages/explainer.md
dictionary CookieListItem {
USVString name;
USVString value;
};
typedef sequence<CookieListItem> CookieList;
dictionary CookieChangeEventInit : EventInit {
CookieList changed;
CookieList deleted;
};
[
Exposed=(ServiceWorker,Window),
Constructor(DOMString type, optional CookieChangeEventInit eventInitDict)
] interface CookieChangeEvent : Event {
readonly attribute CookieList changed;
readonly attribute CookieList deleted;
};
enum CookieMatchType {
"equals",
"startsWith"
};
dictionary CookieStoreGetOptions {
USVString name;
USVString url;
CookieMatchType matchType = "equals";
};
dictionary CookieStoreSetOptions {
USVString name;
USVString value;
DOMTimeStamp? expires = null;
USVString domain;
USVString path = "/";
boolean? secure;
boolean httpOnly = false;
};
[
Exposed=(ServiceWorker,Window)
] interface CookieStore : EventTarget {
Promise<CookieList?> getAll(USVString name, optional CookieStoreGetOptions options);
Promise<CookieList?> getAll(optional CookieStoreGetOptions options);
Promise<CookieListItem?> get(USVString name, optional CookieStoreGetOptions options);
Promise<CookieListItem?> get(optional CookieStoreGetOptions options);
Promise<boolean> has(USVString name, optional CookieStoreGetOptions options);
Promise<boolean> has(optional CookieStoreGetOptions options);
Promise<void> set(USVString name, USVString value, optional CookieStoreSetOptions options);
Promise<void> set(CookieStoreSetOptions options);
Promise<void> delete(USVString name, optional CookieStoreSetOptions options);
Promise<void> delete(CookieStoreSetOptions options);
attribute EventHandler onchange;
};
partial interface Window {
[Replaceable, SameObject] readonly attribute CookieStore cookieStore;
};
partial interface ServiceWorkerGlobalScope {
[Replaceable, SameObject] readonly attribute CookieStore cookieStore;
};