| <!doctype html> |
| <title>MediaStreamTrack transfer to iframe</title> |
| <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> |
| promise_test(async () => { |
| const iframe = document.createElement("iframe"); |
| await test_driver.bless('getDisplayMedia'); |
| const stream = await navigator.mediaDevices.getDisplayMedia({video: true}); |
| const track = stream.getVideoTracks()[0]; |
| const iframeLoaded = new Promise((resolve) => {iframe.onload = resolve}); |
| |
| iframe.src = "support/iframe-MediaStreamTrack-transfer.html"; |
| document.body.appendChild(iframe); |
| |
| await iframeLoaded; |
| |
| const nextMessage = new Promise((resolve) => { |
| window.onmessage = resolve |
| }); |
| |
| assert_not_equals(track.readyState, "ended"); |
| iframe.contentWindow.postMessage(track); |
| assert_equals(track.readyState, "ended"); |
| |
| const message = await nextMessage; |
| assert_not_equals(message.data.result, 'Failure', 'Failed: ' + message.data.error); |
| }); |
| </script> |