tor-browser

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

leave-picture-in-picture.html (2087B)


      1 <!DOCTYPE html>
      2 <title>Test leavepictureinpicture event</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  let pictureInPictureWindow;
     14  const video = await loadVideo();
     15 
     16  video.addEventListener('enterpictureinpicture', t.step_func_done(event => {
     17    pictureInPictureWindow = event.pictureInPictureWindow;
     18  }));
     19 
     20  video.addEventListener('leavepictureinpicture', t.step_func_done(event => {
     21    assert_equals(pictureInPictureWindow, event.pictureInPictureWindow);
     22 
     23    assert_equals(event.target, video);
     24    assert_equals(event.bubbles, true);
     25    assert_equals(event.cancelable, false);
     26    assert_equals(event.composed, false);
     27    assert_equals(document.pictureInPictureElement, null);
     28  }));
     29 
     30  return requestPictureInPictureWithTrustedClick(video)
     31  .then(() => document.exitPictureInPicture());
     32 }, 'leavepictureinpicture event is fired if document.exitPictureInPicture');
     33 
     34 promise_test(async t => {
     35  let pictureInPictureWindow;
     36  const video = await loadVideo();
     37 
     38  video.addEventListener('enterpictureinpicture', t.step_func_done(event => {
     39    pictureInPictureWindow = event.pictureInPictureWindow;
     40  }));
     41 
     42  video.addEventListener('leavepictureinpicture', t.step_func_done(event => {
     43    assert_equals(pictureInPictureWindow, event.pictureInPictureWindow);
     44    assert_equals(event.target, video);
     45    assert_equals(event.bubbles, true);
     46    assert_equals(event.cancelable, false);
     47    assert_equals(event.composed, false);
     48    assert_equals(document.pictureInPictureElement, null);
     49  }));
     50 
     51  return requestPictureInPictureWithTrustedClick(video)
     52  .then(() => {
     53    video.disablePictureInPicture = true;
     54  });
     55 }, 'leavepictureinpicture event is fired if video.disablePictureInPicture is set to true');
     56 </script>