tor-browser

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

request-picture-in-picture.html (1451B)


      1 <!DOCTYPE html>
      2 <title>Test request Picture-in-Picture</title>
      3 <script src="/common/media.js"></script>
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <script src="/resources/testdriver.js"></script>
      7 <script src="/resources/testdriver-vendor.js"></script>
      8 <script src="resources/picture-in-picture-helpers.js"></script>
      9 <body></body>
     10 <script>
     11 promise_test(async t => {
     12  const video = await loadVideo();
     13  return promise_rejects_dom(t, 'NotAllowedError', video.requestPictureInPicture());
     14 }, 'request Picture-in-Picture requires a user gesture');
     15 
     16 promise_test(t => {
     17  const video = document.createElement('video');
     18  return promise_rejects_dom(t, 'InvalidStateError',
     19      requestPictureInPictureWithTrustedClick(video));
     20 }, 'request Picture-in-Picture requires loaded metadata for the video element');
     21 
     22 promise_test(async t => {
     23  const video = document.createElement('video');
     24  await new Promise(resolve => {
     25    video.src = getAudioURI('/media/sound_5');
     26    video.onloadeddata = resolve;
     27  }).then(() => {
     28    return promise_rejects_dom(t, 'InvalidStateError',
     29      requestPictureInPictureWithTrustedClick(video));
     30  })
     31 }, 'request Picture-in-Picture requires video track for the video element');
     32 
     33 promise_test(async t => {
     34  const video = await loadVideo();
     35  return requestPictureInPictureWithTrustedClick(video);
     36 }, 'request Picture-in-Picture resolves on user click');
     37 </script>