Bug 1885489 - Part 5: Add SnapshotIterator::readInt32(). r=iain
[gecko.git] / dom / webidl / LockManager.webidl
blob075ffbd94e8b9d54131c98e2a2e262c71486db54
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  * https://w3c.github.io/web-locks/
8  */
10 [SecureContext, Exposed=(Window,Worker)]
11 interface LockManager {
12   [NewObject]
13   Promise<any> request(DOMString name,
14                        LockGrantedCallback callback);
15   [NewObject]
16   Promise<any> request(DOMString name,
17                        LockOptions options,
18                        LockGrantedCallback callback);
20   [NewObject]
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;
32   AbortSignal signal;
35 dictionary LockManagerSnapshot {
36   sequence<LockInfo> held;
37   sequence<LockInfo> pending;
40 dictionary LockInfo {
41   DOMString name;
42   LockMode mode;
43   DOMString clientId;