tor-browser

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

eye-dropper-abort-signal.tentative.https.html (1767B)


      1 <!DOCTYPE html>
      2 <title>EyeDropper Test: abort signal</title>
      3 <link rel="author" title="Ionel Popescu" href="mailto:iopopesc@microsoft.com">
      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-actions.js"></script>
      8 <script src="/resources/testdriver-vendor.js"></script>
      9 
     10 <button id="eyedropperbutton">Open eyedropper!</button>
     11 
     12 <script>
     13  function clickOn(element) {
     14    const actions = new test_driver.Actions();
     15    return actions.pointerMove(0, 0, {origin: element})
     16      .pointerDown({button: actions.ButtonType.LEFT})
     17      .pointerUp({button: actions.ButtonType.LEFT})
     18      .send();
     19  }
     20 
     21  promise_test(async t => {
     22    const eyeDropperButton = document.getElementById("eyedropperbutton");
     23    eyeDropperButton.addEventListener("click", async () => {
     24      let eyeDropper = new EyeDropper();
     25      let controller = new AbortController();
     26      controller.abort();
     27      await promise_rejects_dom(t, "AbortError", eyeDropper.open({signal: controller.signal}));
     28    });
     29    await clickOn(eyeDropperButton);
     30  }, "Calling EyeDropper.open with signal's aborted flag set should directly throw AbortError");
     31 
     32  promise_test(async t => {
     33    const eyeDropperButton = document.getElementById("eyedropperbutton");
     34    eyeDropperButton.addEventListener("click", () => {
     35      let eyeDropper = new EyeDropper();
     36      let controller = new AbortController();
     37      this.step_timeout(() => {
     38        controller.abort();
     39      }, 500);
     40      promise_rejects_dom(t, "AbortError", eyeDropper.open({signal: controller.signal}));
     41    });
     42    await clickOn(eyeDropperButton);
     43  }, "Calling abort should dismiss the eyedropper");
     44 
     45 </script>