tor-browser

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

usbDevice-worker.https.html (1223B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="/resources/test-only-api.js"></script>
      5 <script src="/webusb/resources/fake-devices.js"></script>
      6 <script src="/webusb/resources/usb-helpers.js"></script>
      7 <script>
      8 'use strict';
      9 
     10 async function connectInWorker() {
     11  let worker = new Worker('/webusb/resources/open-in-worker.js');
     12  let opened = false;
     13 
     14  await navigator.usb.test.attachToContext(worker);
     15  function nextWorkerMessage() {
     16    return new Promise(resolve => worker.addEventListener(
     17        'message', e => resolve(e.data)));
     18  }
     19  worker.postMessage({ type: 'ConnectEvent' });
     20 
     21  assert_equals('Ready', (await nextWorkerMessage()).type);
     22  let fakeDevice = navigator.usb.test.addFakeDevice(fakeDeviceInit);
     23  let closedPromise = new Promise(resolve => fakeDevice.onclose = resolve)
     24      .then(() => assert_true(opened));
     25 
     26  assert_equals('Success', (await nextWorkerMessage()).type);
     27  opened = true;
     28  return { worker, closedPromise };
     29 }
     30 
     31 usb_test(async () => {
     32  let { worker, closedPromise } = await connectInWorker();
     33  worker.terminate();
     34  await closedPromise;
     35 }, 'terminating worker disconnects device.');
     36 </script>