restriction-request-picture-in-picture.https.html (1202B)
1 <!DOCTYPE html> 2 <title>Prerendering cannot invoke 3 HTMLVideoElement.requestPictureInPicture</title> 4 <meta name="timeout" content="long"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/common/utils.js"></script> 8 <script src="../resources/utils.js"></script> 9 <script src="resources/utils.js"></script> 10 11 <body> 12 <script> 13 setup(() => assertSpeculationRulesIsSupported()); 14 15 promise_test(async t => { 16 const uid = token(); 17 const bc = new PrerenderChannel('prerender-channel', uid); 18 t.add_cleanup(_ => bc.close()); 19 20 const gotMessage = new Promise(resolve => { 21 bc.addEventListener('message', e => { 22 resolve(e.data); 23 }, { 24 once: true 25 }); 26 }); 27 28 // Start prerendering a page that attempts to invoke 29 // HTMLVideoElement.requestPictureInPicture. This API needs 30 // transient activation. So it's expected to fail. 31 startPrerendering(`resources/request-picture-in-picture.html?uid=${uid}`); 32 33 const result = await gotMessage; 34 assert_equals(result, 'Metadata for the video element are not loaded yet'); 35 }, 'prerendering page cannot invoke' + 36 'HTMLVideoElement.requestPictureInPicture'); 37 </script>