tor-browser

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

manual.js (949B)


      1 let manualTestPort = null;
      2 
      3 navigator.serial.addEventListener('disconnect', (e) => {
      4  if (e.target === manualTestPort) {
      5    manualTestPort = null;
      6  }
      7 })
      8 
      9 async function getPortForManualTest() {
     10  if (manualTestPort) {
     11    return manualTestPort;
     12  }
     13 
     14  const button = document.createElement('button');
     15  button.textContent = 'Click to select a device';
     16  button.style.display = 'block';
     17  button.style.fontSize = '20px';
     18  button.style.padding = '10px';
     19 
     20  await new Promise((resolve) => {
     21    button.onclick = () => {
     22      document.body.removeChild(button);
     23      resolve();
     24    };
     25    document.body.appendChild(button);
     26  });
     27 
     28  manualTestPort = await navigator.serial.requestPort({filters: []});
     29  assert_true(manualTestPort instanceof SerialPort);
     30 
     31  return manualTestPort;
     32 }
     33 
     34 function manual_serial_test(func, name, properties) {
     35  promise_test(async (test) => {
     36    await func(test, await getPortForManualTest());
     37  }, name, properties);
     38 }