| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // The spec for MediaDevices is in two parts: |
| // https://w3c.github.io/mediacapture-main/#mediadevices |
| // https://w3c.github.io/mediacapture-main/#mediadevices-interface-extensions |
| |
| [ |
| Exposed=Window, |
| ActiveScriptWrappable, |
| SecureContext |
| ] interface MediaDevices : EventTarget { |
| [RuntimeEnabled=OnDeviceChange] attribute EventHandler ondevicechange; |
| [ |
| CallWith = ScriptState, RaisesException, HighEntropy, MeasureAs = MediaDevicesEnumerateDevices |
| ] Promise<sequence<MediaDeviceInfo>> |
| enumerateDevices(); |
| MediaTrackSupportedConstraints getSupportedConstraints(); |
| [ |
| CallWith = ScriptState, RaisesException, HighEntropy, MeasureAs = GetUserMediaPromise |
| ] Promise<MediaStream> |
| getUserMedia(optional MediaStreamConstraints constraints = {}); |
| |
| // https://w3c.github.io/mediacapture-screen-share/#dom-mediadevices-getdisplaymedia |
| [ |
| RuntimeEnabled = GetDisplayMedia, CallWith = ScriptState, RaisesException, |
| MeasureAs = GetDisplayMedia |
| ] Promise<MediaStream> |
| getDisplayMedia(optional MediaStreamConstraints constraints = {}); |
| |
| // TODO(crbug.com/1136942): Link to the spec after the PR goes through. |
| // Note: The runtime flag GetCurrentBrowsingContextMedia presupposes |
| // the runtime flag GetDisplayMedia. |
| // If (GetCurrentBrowsingContextMedia && !GetDisplayMedia), that's an error, |
| // and permission will be denied. |
| [ |
| RuntimeEnabled = GetCurrentBrowsingContextMedia, CallWith = ScriptState, |
| RaisesException, |
| MeasureAs = GetCurrentBrowsingContextMedia |
| ] Promise<MediaStream> |
| getCurrentBrowsingContextMedia(optional MediaStreamConstraints constraints = {}); |
| }; |