1/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/.
5 *
6 * The origin of this IDL file is
7 * http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html
8 *
9 */
10
11[Exposed=ServiceWorker]
12interface Clients {
13  // The objects returned will be new instances every time
14  [NewObject]
15  Promise<any> get(DOMString id);
16  [NewObject]
17  Promise<sequence<Client>> matchAll(optional ClientQueryOptions options);
18  [NewObject]
19  Promise<WindowClient?> openWindow(USVString url);
20  [NewObject]
21  Promise<void> claim();
22};
23
24dictionary ClientQueryOptions {
25  boolean includeUncontrolled = false;
26  ClientType type = "window";
27};
28
29enum ClientType {
30  "window",
31  "worker",
32  "sharedworker",
33  // https://github.com/w3c/ServiceWorker/issues/1036
34  "serviceworker",
35  "all"
36};
37
38