picture-in-picture.https.html (1032B)
1 <!DOCTYPE html> 2 <title>Test of picture-in-picture</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="/common/utils.js"></script> 6 <script src="/common/dispatcher/dispatcher.js"></script> 7 <script src="resources/utils.js"></script> 8 9 <body> 10 <script> 11 promise_test(async () => { 12 const frame = attachFencedFrameContext(); 13 const result = await frame.execute(async () => { 14 const video = document.body.appendChild(document.createElement("video")); 15 try { 16 await video.requestPictureInPicture(); 17 return 'PIP request succeeded.'; 18 } catch (e) { 19 if (e.name == 'SecurityError') { 20 return 'PIP request failed'; 21 } else { 22 return `PIP request failed but not with SecurityError - ${e.name}: ${e.message}`; 23 } 24 } 25 }); 26 assert_equals( 27 result, 'PIP request failed', 28 'PIP request must fail in a fenced frame by permissions policy.'); 29 }, 'Test HTMLVideoElement.requestPictureInPicture'); 30 </script> 31 </body>