LockManager.webidl (1157B)
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 */ 9 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); 19 20 [NewObject] 21 Promise<LockManagerSnapshot> query(); 22 }; 23 24 callback LockGrantedCallback = Promise<any> (Lock? lock); 25 26 enum LockMode { "shared", "exclusive" }; 27 28 dictionary LockOptions { 29 LockMode mode = "exclusive"; 30 boolean ifAvailable = false; 31 boolean steal = false; 32 AbortSignal signal; 33 }; 34 35 dictionary LockManagerSnapshot { 36 sequence<LockInfo> held; 37 sequence<LockInfo> pending; 38 }; 39 40 dictionary LockInfo { 41 DOMString name; 42 LockMode mode; 43 DOMString clientId; 44 };