diff --git a/dom/webidl/Cache.webidl b/dom/webidl/Cache.webidl new file mode 100644 index 000000000000..099701d2bdcd --- /dev/null +++ b/dom/webidl/Cache.webidl @@ -0,0 +1,45 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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 http://mozilla.org/MPL/2.0/. + * + * The origin of this IDL file is + * http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html + * + */ + +// https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#cache + +[Exposed=(Window,Worker), + Func="mozilla::dom::cache::Cache::PrefEnabled"] +interface Cache { +[Throws] +Promise match(RequestInfo request, optional CacheQueryOptions options); +[Throws] +Promise> matchAll(optional RequestInfo request, optional CacheQueryOptions options); +[Throws] +Promise add(RequestInfo request); +[Throws] +Promise addAll(sequence requests); +[Throws] +Promise put(RequestInfo request, Response response); +[Throws] +Promise delete(RequestInfo request, optional CacheQueryOptions options); +[Throws] +Promise> keys(optional RequestInfo request, optional CacheQueryOptions options); +}; + +dictionary CacheQueryOptions { +boolean ignoreSearch = false; +boolean ignoreMethod = false; +boolean ignoreVary = false; +boolean prefixMatch = false; +DOMString cacheName; +}; + +dictionary CacheBatchOperation { +DOMString type; +Request request; +Response response; +CacheQueryOptions options; +}; diff --git a/dom/webidl/CacheStorage.webidl b/dom/webidl/CacheStorage.webidl new file mode 100644 index 000000000000..ef845a64a1a5 --- /dev/null +++ b/dom/webidl/CacheStorage.webidl @@ -0,0 +1,26 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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 http://mozilla.org/MPL/2.0/. + * + * The origin of this IDL file is + * http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html + * + */ + +// https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#cache-storage + +[Exposed=(Window,Worker), + Func="mozilla::dom::cache::CacheStorage::PrefEnabled"] +interface CacheStorage { +[Throws] +Promise match(RequestInfo request, optional CacheQueryOptions options); +[Throws] +Promise has(DOMString cacheName); +[Throws] +Promise open(DOMString cacheName); +[Throws] +Promise delete(DOMString cacheName); +[Throws] +Promise> keys(); +}; diff --git a/dom/webidl/moz.build b/dom/webidl/moz.build index e94fb23a9373..be94266c8fa2 100644 --- a/dom/webidl/moz.build +++ b/dom/webidl/moz.build @@ -57,6 +57,8 @@ WEBIDL_FILES = [ 'BroadcastChannel.webidl', 'BrowserElement.webidl', 'BrowserElementDictionaries.webidl', + 'Cache.webidl', + 'CacheStorage.webidl', 'CallsList.webidl', 'CameraCapabilities.webidl', 'CameraControl.webidl',