| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ |
| |
| // https://w3c.github.io/permissions/#permissionstatus |
| |
| dictionary PermissionDescriptor { |
| required PermissionName name; |
| }; |
| |
| enum PermissionState { |
| "granted", |
| "denied", |
| "prompt", |
| }; |
| |
| enum PermissionName { |
| "geolocation", |
| "notifications", |
| "push", |
| "midi", |
| "camera", |
| "microphone", |
| "speaker", |
| "device-info", |
| "background-sync", |
| "bluetooth", |
| "persistent-storage", |
| }; |
| |
| [Pref="dom_permissions_enabled", Exposed=(Window,Worker)] |
| interface PermissionStatus : EventTarget { |
| readonly attribute PermissionState state; |
| attribute EventHandler onchange; |
| }; |
| |
| dictionary PushPermissionDescriptor : PermissionDescriptor { |
| boolean userVisibleOnly = false; |
| }; |
| |
| dictionary MidiPermissionDescriptor : PermissionDescriptor { |
| boolean sysex = false; |
| }; |
| |
| dictionary DevicePermissionDescriptor : PermissionDescriptor { |
| DOMString deviceId; |
| }; |