tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>