tor-browser

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

pointer-events.html (1465B)


      1 <!DOCTYPE html>
      2 <title>Pointer capture should not be released when moving</title>
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script src="/resources/testdriver.js"></script>
      6 <script src="/resources/testdriver-vendor.js"></script>
      7 <script src="/resources/testdriver-actions.js"></script>
      8 <section id="old_parent">
      9    <div id="item"></div>
     10 </section>
     11 <section id="new_parent">
     12 </section>
     13 <style>
     14    #item {
     15        width: 100px;
     16        height: 100px;
     17        background: green;
     18    }
     19 </style>
     20 <script>
     21    promise_test(async function (t) {
     22        const item = document.querySelector("#item");
     23        let pointerId = 0;
     24        item.addEventListener("pointerdown", e => {
     25            pointerId = e.pointerId;
     26        });
     27        await new test_driver.Actions()
     28            .pointerMove(1, 1, {origin: item})
     29            .pointerDown()
     30            .pointerMove(10, 10, {origin: item})
     31            .send();
     32 
     33        item.setPointerCapture(pointerId);
     34 
     35        assert_true(item.hasPointerCapture(pointerId), "Item has pointer capture before move");
     36        document.querySelector("#new_parent").moveBefore(item, null);
     37        assert_true(item.hasPointerCapture(pointerId), "Item has pointer capture after move");
     38        document.querySelector("#old_parent").insertBefore(item, null);
     39        assert_false(item.hasPointerCapture(pointerId), "Item lost pointer capture after insert");
     40    });
     41 </script>