tor-browser

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

file_pointercapture_xorigin_iframe.html (1866B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=1671849
      5 -->
      6 <head>
      7 <title>Bug 1671849</title>
      8 <script src="/tests/SimpleTest/EventUtils.js"></script>
      9 <script src="/tests/SimpleTest/SimpleTest.js"></script>
     10 <script src="pointerevent_utils.js"></script>
     11 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     12 <style>
     13 #target {
     14  width: 100px;
     15  height: 100px;
     16  background-color: green;
     17 }
     18 iframe {
     19  width: 400px;
     20  height: 300px;
     21  border: 1px solid blue;
     22 }
     23 </style>
     24 </head>
     25 <body>
     26 <a target="_blank"href="https://bugzilla.mozilla.org/show_bug.cgi?id=1671849">Mozilla Bug 1671849</a>
     27 <div id="target"></div>
     28 <iframe src="https://example.com/tests/dom/events/test/pointerevents/iframe.html"></iframe>
     29 
     30 <pre id="test">
     31 <script type="text/javascript">
     32 /**
     33 * Test for Bug 1671849
     34 */
     35 add_task(async function test_pointer_capture_xorigin_iframe() {
     36  let iframe = document.querySelector("iframe");
     37  await SpecialPowers.spawn(iframe.contentWindow, [], () => {
     38    let unexpected = function(e) {
     39      ok(false, `iframe shoule not get any ${e.type} event`);
     40    };
     41    content.document.body.addEventListener("pointermove", unexpected);
     42    content.document.body.addEventListener("pointerup", unexpected);
     43  });
     44 
     45  let target = document.getElementById("target");
     46  synthesizeMouse(target, 10, 10, { type: "mousedown" });
     47  await waitForEvent(target, "pointerdown", function(e) {
     48    target.setPointerCapture(e.pointerId);
     49  });
     50 
     51  synthesizeMouse(iframe, 10, 10, { type: "mousemove" });
     52  await Promise.all([waitForEvent(target, "gotpointercapture"),
     53                     waitForEvent(target, "pointermove")]);
     54 
     55  synthesizeMouse(iframe, 10, 10, { type: "mouseup" });
     56  await Promise.all([waitForEvent(target, "lostpointercapture"),
     57                     waitForEvent(target, "pointerup")]);
     58 });
     59 </script>
     60 </pre>
     61 </body>
     62 </html>