diff --git a/getusermedia.html b/getusermedia.html index 479fef30..27a33aea 100644 --- a/getusermedia.html +++ b/getusermedia.html @@ -5174,6 +5174,88 @@
This specification defines two [=powerful features=] identified by the
+ [=powerful feature/names=] "camera"
and "microphone"
.
It defines the following types and algorithms:
++ dictionary DevicePermissionDescriptor : PermissionDescriptor { + DOMString deviceId; + }; + + dictionary CameraDevicePermissionDescriptor : DevicePermissionDescriptor { + boolean panTiltZoom = false; + }; ++
+ A permission covers access to the device given in the associated descriptor. +
++ If the descriptor does not have a {{DevicePermissionDescriptor/deviceId}}, its + semantic is that it queries for access to all devices of that class. Thus, if a query + for the {{PermissionName/"camera"}} permission with no + {{DevicePermissionDescriptor/deviceId}} returns {{PermissionState/"granted"}}, the + client knows that there will never be a permission prompt for a camera, and if + {{PermissionState/"denied"}} is returned, it knows that no getUserMedia request for a + camera will succeed. +
++ If a permission state is present for access to some, but not all, cameras, a query + without the {{DevicePermissionDescriptor/deviceId}} will return + {{PermissionState/"prompt"}}. +
++ `{name: "camera", panTiltZoom: true}` is [=PermissionDescriptor/stronger than=] + `{name: "camera", panTiltZoom: false}`. +
++ Note that a "granted" permission is no guarantee that getUserMedia will succeed. It + only guarantees that the user will not be prompted for permission. There are many + other things (such as constraints or the camera being in use) that can cause + getUserMedia to fail. +
+|status|.state
to |permissionDesc|'s permission state
+ and terminate these steps.
+ |status|.state
to global's permission state.
+ undefined
is passed in place of {{DevicePermissionDescriptor/deviceId}}.
+ This specification defines two [=policy-controlled feature=]s