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/.
6 * The origin of this IDL file is
7 * https://w3c.github.io/web-locks/
10 [SecureContext, Exposed=(Window,Worker)]
11 interface LockManager {
13 Promise<any> request(DOMString name,
14 LockGrantedCallback callback);
16 Promise<any> request(DOMString name,
18 LockGrantedCallback callback);
21 Promise<LockManagerSnapshot> query();
24 callback LockGrantedCallback = Promise<any> (Lock? lock);
26 enum LockMode { "shared", "exclusive" };
28 dictionary LockOptions {
29 LockMode mode = "exclusive";
30 boolean ifAvailable = false;
31 boolean steal = false;
35 dictionary LockManagerSnapshot {
36 sequence<LockInfo> held;
37 sequence<LockInfo> pending;