tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 };