chromium/third_party/blink/renderer/modules/permissions/permission_descriptor.idl

// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://w3c.github.io/permissions/#enumdef-permissionname
enum PermissionName {
    "geolocation",
    "notifications",
    "push",
    "midi",
    "camera",
    "microphone",
    // "speaker",
    // "device-info",
    "background-fetch",
    "background-sync",
    // "bluetooth",
    "persistent-storage",
    "ambient-light-sensor",
    "accelerometer",
    "gyroscope",
    "magnetometer",
    // "clipboard",
    "screen-wake-lock",
    "nfc",
    "display-capture",

    // Non-standard:
    "accessibility-events",
    "clipboard-read",
    "clipboard-write",
    "payment-handler",
    "idle-detection",
    "periodic-background-sync",
    "system-wake-lock",
    "storage-access",
    "window-management",
    "local-fonts",
    "top-level-storage-access",
    "captured-surface-control",
    "speaker-selection",
    "keyboard-lock",
    "pointer-lock",
    "fullscreen",
    "web-app-installation",
};

// The PermissionDescriptor dictionary is a base to describe permissions. Some
// permissions will extend it. The methods reading it will re-parse it depending
// on the name.
// https://w3c.github.io/permissions/#dom-permissiondescriptor
dictionary PermissionDescriptor {
    required PermissionName name;
};