parallel-capture-requests.https.html (2300B)
1 <!doctype html> 2 <html> 3 <head> 4 <title>Parallel capture requests</title> 5 </head> 6 <body> 7 <button id="button">User gesture</button> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <script src="/resources/testdriver.js"></script> 11 <script src="/resources/testdriver-vendor.js"></script> 12 <script> 13 async function getDisplayMedia(constraints) { 14 const p = new Promise(r => button.onclick = r); 15 await test_driver.click(button); 16 await p; 17 return navigator.mediaDevices.getDisplayMedia(constraints); 18 } 19 20 promise_test(function() { 21 const getUserMediaPromise = 22 navigator.mediaDevices.getUserMedia({audio: true, video:true}); 23 const getDisplayMediaPromise = 24 getDisplayMedia({video: true, audio: true}); 25 return Promise.all([getUserMediaPromise, getDisplayMediaPromise]) 26 .then(function(s) { 27 assert_greater_than_equal(s[0].getTracks().length, 1); 28 assert_less_than_equal(s[0].getTracks().length, 2); 29 assert_equals(s[0].getVideoTracks().length, 1); 30 assert_less_than_equal(s[0].getAudioTracks().length, 1); 31 assert_greater_than_equal(s[1].getTracks().length, 1); 32 assert_less_than_equal(s[1].getTracks().length, 2); 33 assert_equals(s[1].getVideoTracks().length, 1); 34 assert_less_than_equal(s[1].getAudioTracks().length, 1); 35 }); 36 }, 'getDisplayMedia() and parallel getUserMedia()'); 37 38 promise_test(function() { 39 const getDisplayMediaPromise = 40 getDisplayMedia({video: true, audio: true}); 41 const getUserMediaPromise = 42 navigator.mediaDevices.getUserMedia({audio: true, video:true}); 43 return Promise.all([getDisplayMediaPromise, getUserMediaPromise]) 44 .then(function(s) { 45 assert_greater_than_equal(s[0].getTracks().length, 1); 46 assert_less_than_equal(s[0].getTracks().length, 2); 47 assert_equals(s[0].getVideoTracks().length, 1); 48 assert_less_than_equal(s[0].getAudioTracks().length, 1); 49 assert_greater_than_equal(s[1].getTracks().length, 1); 50 assert_less_than_equal(s[1].getTracks().length, 2); 51 assert_equals(s[1].getVideoTracks().length, 1); 52 assert_less_than_equal(s[1].getAudioTracks().length, 1); 53 }); 54 }, 'getUserMedia() and parallel getDisplayMedia()'); 55 </script> 56 </body> 57 </html>