Permissions.webidl (1537B)
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/permissions/#permissions-interface 8 */ 9 10 enum PermissionName { 11 "geolocation", 12 "notifications", 13 "push", 14 "persistent-storage", 15 "midi", 16 "storage-access", // Defined in https://privacycg.github.io/storage-access/#permissions-integration 17 "screen-wake-lock", // Defined in https://w3c.github.io/screen-wake-lock/ 18 "camera", // Defined in https://www.w3.org/TR/mediacapture-streams/#permissions-integration 19 "microphone" // Defined in https://www.w3.org/TR/mediacapture-streams/#permissions-integration 20 }; 21 22 [GenerateInit] 23 dictionary PermissionDescriptor { 24 required PermissionName name; 25 }; 26 27 // https://webaudio.github.io/web-midi-api/#permissions-integration 28 [GenerateInit] 29 dictionary MidiPermissionDescriptor : PermissionDescriptor { 30 boolean sysex = false; 31 }; 32 33 // We don't implement `PushPermissionDescriptor` because we use a background 34 // message quota instead of `userVisibleOnly`. 35 36 [Exposed=(Window,Worker)] 37 interface Permissions { 38 [NewObject] 39 Promise<PermissionStatus> query(object permission); 40 41 // http://w3c.github.io/permissions/#webdriver-command-set-permission 42 [ChromeOnly, Throws] 43 PermissionStatus parseSetParameters(PermissionSetParameters parameters); 44 };