tor-browser

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

test_AbortAfterPartialMediaSegment.html (1720B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>MSE: can properly resume after a partial media segment header followed by abort </title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <script type="text/javascript" src="mediasource.js"></script>
      7  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      8 </head>
      9 <body>
     10 <pre id="test">
     11 <script class="testbody" type="text/javascript">
     12 
     13 SimpleTest.waitForExplicitFinish();
     14 
     15 const VIDEO_CODEC_STRING = 'video/webm; codecs="vp09.00.51.08.01.01.01.01"';
     16 
     17 const logError = (error) => {
     18  console.error(error, error.message);
     19  ok(false, "should not reach here");
     20 };
     21 
     22 runWithMSE(async (ms, v) => {
     23  await once(ms, "sourceopen");
     24 
     25  const supported = MediaSource.isTypeSupported(VIDEO_CODEC_STRING);
     26  if (!supported) {
     27    ok(true, "vp9 isn't supported on this platform, abort");
     28    SimpleTest.finish();
     29    return;
     30  }
     31  const sb = ms.addSourceBuffer(VIDEO_CODEC_STRING);
     32 
     33  const arrayBuffer = await fetchWithXHR("1516754.webm");
     34  info("- append init segment, a media segment and a partial media segment header -");
     35  sb.appendBuffer(new Uint8Array(arrayBuffer, 0, 87355 + 3000));
     36 
     37  info("- wait for updateend -");
     38  await once(sb, "updateend");
     39 
     40  // start seeking.
     41  v.currentTime = 11;
     42  v.addEventListener("seeked", () => {
     43    info("- seek completed -");
     44    SimpleTest.finish();
     45  });
     46 
     47  sb.abort();
     48 
     49  info("- append init segment -");
     50  sb.appendBuffer(new Uint8Array(arrayBuffer, 0, 3150));
     51  info("- wait for updateend -");
     52  await once(sb, "updateend");
     53  info("- append media segment 10-15s -");
     54  sb.appendBuffer(new Uint8Array(arrayBuffer, 159968, 72931));
     55 
     56  // We now wait for seek to complete
     57 });
     58 
     59 </script>
     60 </pre>
     61 </body>
     62 </html>