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>