| <!doctype html> |
| <meta charset=utf-8> |
| <title>getDisplayMedia</title> |
| <meta name="timeout" content="long"> |
| <button id="button">User gesture</button> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| <video id="display"></video> |
| <script> |
| 'use strict'; |
| |
| const stopTracks = stream => stream.getTracks().forEach(track => track.stop()); |
| |
| async function getDisplayMedia(constraints) { |
| const p = new Promise(r => button.onclick = r); |
| await test_driver.click(button); |
| await p; |
| return navigator.mediaDevices.getDisplayMedia(constraints); |
| } |
| |
| promise_test(async t => { |
| const stream = await getDisplayMedia({video: true}); |
| const track = stream.getVideoTracks()[0]; |
| t.add_cleanup(() => stopTracks(stream)); |
| |
| const settings = track.getSettings(); |
| const capabilities = track.getCapabilities(); |
| |
| assert_true("deviceId" in settings); |
| assert_equals(capabilities.deviceId, settings.deviceId); |
| }, "getDisplayMedia() deviceId setting and capability"); |
| |
| promise_test(async t => { |
| const stream = await getDisplayMedia({video: true}); |
| const track = stream.getVideoTracks()[0]; |
| t.add_cleanup(() => stopTracks(stream)); |
| |
| const settings = track.getSettings(); |
| const capabilities = track.getCapabilities(); |
| |
| assert_false("facingMode" in settings); |
| assert_false("facingMode" in capabilities); |
| }, "getDisplayMedia() and facingMode"); |
| |
| </script> |