tor-browser

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

script-transform.https.html (2378B)


      1 <!doctype html>
      2 <html>
      3    <head>
      4        <meta charset="utf-8">
      5        <meta name="timeout" content="long">
      6 <script src="/resources/testharness.js"></script>
      7        <script src="/resources/testharnessreport.js"></script>
      8        <script src=/resources/testdriver.js></script>
      9 <script src=/resources/testdriver-vendor.js></script>
     10 <script src='../mediacapture-streams/permission-helper.js'></script>
     11    </head>
     12    <body>
     13        <video id="video1" autoplay></video>
     14        <video id="video2" autoplay></video>
     15        <script src ="routines.js"></script>
     16        <script>
     17 
     18 promise_test(async (test) => {
     19  const worker = await createWorker('script-transform-worker.js');
     20  const transform = await createTransform(worker);
     21  transform.port.postMessage("ping");
     22  assert_equals(await getNextMessage(transform.port), "pong");
     23 }, "transform messaging");
     24 
     25 promise_test(async (test) => {
     26  const {sender, receiver, senderPc, receiverPc} = await createConnectionWithTransform(test, 'script-transform-worker.js', {audio: true});
     27 
     28  const sender2 = senderPc.addTransceiver('video').sender;
     29  const receiver2 = senderPc.getReceivers()[1];
     30 
     31  assert_throws_dom("InvalidStateError", () => sender2.transform = sender.transform);
     32  assert_throws_dom("InvalidStateError", () => receiver2.transform = receiver.transform);
     33 
     34  sender.transform = sender.transform;
     35  receiver.transform = receiver.transform;
     36 
     37  sender.transform = null;
     38  receiver.transform = null;
     39 }, "Cannot reuse attached transforms");
     40 
     41 promise_test(async (test) => {
     42  const {sender, receiver, senderPc, receiverPc} = await createConnectionWithTransform(test, 'script-transform-worker.js', {audio: true});
     43  assert_equals(await getNextMessage(sender.transform.port), "audio chunk");
     44 
     45  video1.srcObject = new MediaStream([receiver.track]);
     46  await video1.play();
     47 }, "audio exchange with transform");
     48 
     49 promise_test(async (test) => {
     50  const {sender, receiver, senderPc, receiverPc} = await createConnectionWithTransform(test, 'script-transform-worker.js', {video: true});
     51 
     52  assert_equals(await getNextMessage(sender.transform.port), "video chunk");
     53  // First frame should be a keyframe
     54  assert_equals(await getNextMessage(sender.transform.port), "video keyframe");
     55 
     56  video1.srcObject = new MediaStream([receiver.track]);
     57  await video1.play();
     58 }, "video exchange with transform");
     59        </script>
     60    </body>
     61 </html>