| <!doctype html> |
| <html> |
| |
| <head> |
| <title>BrowserCaptureMediaStreamTrack cropTo()</title> |
| <link rel="help" href="https://github.com/w3c/mediacapture-region/"> |
| <meta charset="utf-8" /> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| </head> |
| |
| <body> |
| <p class="instructions"> |
| When prompted, accept to give permission to use your audio, video devices. |
| </p> |
| <h1 class="instructions">Description</h1> |
| <p class="instructions"> |
| This test checks that BrowserCaptureMediaStreamTrack cropping works as |
| expected. |
| </p> |
| |
| <button id="button">Start test</button> |
| <div id='test-div' width="500px" height="600px"></div> |
| |
| <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> |
| <script src=permission-helper.js></script> |
| |
| <script> |
| "use strict"; |
| |
| async function getDisplayMedia() { |
| const p = new Promise(r => button.onclick = r); |
| await test_driver.click(button); |
| await p; |
| return navigator.mediaDevices.getDisplayMedia( |
| {video:{displaySurface:"browser"}, selfBrowserSurface:"include"}); |
| } |
| |
| promise_test(async t => { |
| const stream = await getDisplayMedia(); |
| assert_true(stream.active, "stream should be active."); |
| |
| assert_equals(stream.getVideoTracks().length, 1); |
| const [videoTrack] = stream.getVideoTracks(); |
| assert_true(videoTrack instanceof MediaStreamTrack, |
| "track should be either MediaStreamTrack or a subclass thereof."); |
| assert_equals(videoTrack.readyState, "live"); |
| |
| const div = document.getElementById('test-div'); |
| const cropTarget = await CropTarget.fromElement(div); |
| assert_true(!!videoTrack.cropTo, "cropTo exposed."); |
| assert_true(typeof videoTrack.cropTo === 'function', |
| "cropTo is a function."); |
| await videoTrack.cropTo(cropTarget); |
| |
| assert_true(stream.active, "stream should be active."); |
| assert_false(videoTrack.muted, "track should not be muted."); |
| }, "Tests that cropping MediaStreamTrack objects works as expected"); |
| |
| </script> |
| </body> |
| |
| </html> |