| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <body> |
| <script src="/resources/testharness.js" |
| type="text/javascript{{GET[in-iframe]}}"></script> |
| <script src="/resources/testharnessreport.js" |
| type="text/javascript{{GET[in-iframe]}}"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| <script src="/common/get-host-info.sub.js"></script> |
| <script src="/permissions-policy/resources/permissions-policy.js"></script> |
| <script> |
| 'use strict'; |
| |
| async function getDisplayMedia(constraints) { |
| await test_driver.bless('transient activation for getDisplayMedia()'); |
| return navigator.mediaDevices.getDisplayMedia(constraints); |
| } |
| |
| async function testGDM({audio, video}) { |
| let stream; |
| try { |
| stream = await getDisplayMedia({audio, video}); |
| if (stream.getVideoTracks().length == 0) { |
| throw Error(`requested video track must be present with ` + |
| `audio ${audio} and video ${video}, or fail`); |
| } |
| } finally { |
| if (stream) { |
| stream.getTracks().forEach(track => track.stop()); |
| } |
| } |
| } |
| |
| if (page_loaded_in_iframe()) { |
| test_driver.set_test_context(window.parent); |
| } |
| const cross_domain = get_host_info().HTTPS_REMOTE_ORIGIN; |
| run_all_fp_tests_allow_self( |
| cross_domain, |
| 'display-capture', |
| 'NotAllowedError', |
| async () => { |
| await testGDM({audio: true, video: true}); |
| } |
| ); |
| </script> |
| </body> |