| <!doctype html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Testing autoplay with getUserMedia</title> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src=../media/media-file.js></script> |
| <script src=../media/video-test.js></script> |
| </head> |
| <body> |
| <video id="video1" loop autoplay playsInline></video> |
| <video id="video2" loop autoplay playsInline></video> |
| <script> |
| promise_test(async (test) => { |
| if (window.internals) |
| internals.setMediaElementRestrictions(video2, ""); |
| |
| video1.src = findMediaFile("video", "../media/content/audio-tracks"); |
| await video1.play(); |
| |
| let removedVideo1 = video1; |
| removedVideo1.remove(); |
| |
| let cptr = 0; |
| while (++cptr < 50 && !removedVideo1.paused) |
| await new Promise(resolve => setTimeout(resolve, 50)); |
| assert_true(removedVideo1.paused, "out of DOM video should get paused"); |
| |
| video2.srcObject = await navigator.mediaDevices.getUserMedia({ video : true }); |
| |
| while (video2.paused) |
| await new Promise(resolve => setTimeout(resolve, 50)); |
| |
| assert_true(removedVideo1.paused, "out of DOM video should not restart after getUserMedia call"); |
| }, "Granting getUserMedia should not start out of DOM video element"); |
| </script> |
| </body> |
| </html> |