request-picture-in-picture-twice.html (1236B)
1 <!DOCTYPE html> 2 <title>Test request Picture-in-Picture on two videos</title> 3 <meta name="timeout" content="long"> 4 <script src="/common/media.js"></script> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/resources/testdriver.js"></script> 8 <script src="/resources/testdriver-vendor.js"></script> 9 <script src="resources/picture-in-picture-helpers.js"></script> 10 <body></body> 11 <script> 12 promise_test(async t => { 13 const video1 = await loadVideo(); 14 const video2 = await loadVideo(); 15 await test_driver.bless('request Picture-in-Picture'); 16 const promise = video1.requestPictureInPicture(); 17 await promise_rejects_dom(t, 'NotAllowedError', video2.requestPictureInPicture()); 18 return promise; 19 }, 'request Picture-in-Picture consumes user gesture'); 20 21 promise_test(async t => { 22 const video1 = await loadVideo(); 23 const video2 = await loadVideo(); 24 await test_driver.bless('request Picture-in-Picture'); 25 await video1.requestPictureInPicture(); 26 assert_equals(document.pictureInPictureElement, video1); 27 return video2.requestPictureInPicture(); 28 }, 'request Picture-in-Picture does not require user gesture if document.pictureInPictureElement is set'); 29 </script>