pip-fullscreen.tentative.https.html (1802B)
1 <!DOCTYPE html> 2 <title>Test how document picture-in-picture interacts with fullscreen</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="/resources/testdriver.js"></script> 6 <script src="/resources/testdriver-vendor.js"></script> 7 <link rel="help" href="https://github.com/WICG/document-picture-in-picture/issues/133"> 8 <body> 9 <script> 10 function waitForEvent(target, event) { 11 return new Promise(resolve => target.addEventListener(event, resolve, {once: true})) 12 } 13 14 promise_test(async (t) => { 15 await test_driver.bless('request PiP window from top window'); 16 const pipWindow = await documentPictureInPicture.requestWindow(); 17 18 await test_driver.bless('request fullscreen for PiP'); 19 try { 20 await pipWindow.document.body.requestFullscreen(); 21 assert_unreached('request fullscreen should fail'); 22 } catch (e) { 23 assert_equals(e.name, "TypeError", "fullscreening PiP throws an exception"); 24 } 25 }, "A pip window cannot be fullscreened"); 26 27 promise_test(async (t) => { 28 await test_driver.bless('request PiP window from top window'); 29 const pipWindow = await documentPictureInPicture.requestWindow(); 30 31 const fsResult = new Promise((res, rej) => { 32 document.body.addEventListener('fullscreenchange', res); 33 document.body.addEventListener('fullscreenerror', rej); 34 }); 35 36 await test_driver.bless('request fullscreen from opener', null, pipWindow); 37 const script = pipWindow.document.createElement("script"); 38 script.textContent = `opener.document.body.requestFullscreen()`; 39 pipWindow.document.body.append(script); 40 41 const res = await fsResult; 42 assert_true(document.fullscreen, 'opener entered fullscreen'); 43 await document.exitFullscreen(); 44 }, "A pip window can fullscreen it's opener"); 45 </script> 46 </body>