helper_hittest_bug1715369.html (1980B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=2100"/> 6 <title>Check hittesting fission oop iframe with transform works bug 1715369</title> 7 <script src="apz_test_native_event_utils.js"></script> 8 <script src="apz_test_utils.js"></script> 9 <script src="/tests/SimpleTest/paint_listener.js"></script> 10 <script> 11 12 async function makeActive(x, y, targetId) { 13 let theTarget = document.getElementById(targetId); 14 await promiseNativeMouseEventWithAPZAndWaitForEvent({ 15 type: "click", 16 target: theTarget, 17 offsetX: x, 18 offsetY: y, 19 }); 20 21 await promiseApzFlushedRepaints(); 22 23 ok(isLayerized(targetId), "target should be layerized at this point"); 24 let utils = SpecialPowers.getDOMWindowUtils(window); 25 let targetScrollId = utils.getViewId(theTarget); 26 ok(targetScrollId > 0, "target should have a scroll id"); 27 } 28 29 async function test() { 30 await makeActive(20, 20, "scrollable"); 31 32 let clickPromise = new Promise(resolve => { 33 window.addEventListener("message", event => { 34 if (event.data == "gotclick") { 35 ok(true, "got click"); 36 resolve(); 37 } 38 }) 39 }); 40 41 42 let thetarget = document.getElementById("theiframe"); 43 await synthesizeNativeMouseEventWithAPZ({ type: "click", target: thetarget, offsetX: 25, offsetY: 25 }); 44 info("sent click"); 45 46 await clickPromise; 47 48 ok(true, "must have got click"); 49 50 } 51 52 waitUntilApzStable() 53 .then(test) 54 .then(subtestDone, subtestFailed); 55 56 </script> 57 <style> 58 </style> 59 </head> 60 <body> 61 62 <!--transform 63 asr change 64 in process iframe/stackingcontext 65 oopif--> 66 <div style="height: 100px; width: 100px; transform: scale(3); transform-origin: top left;"> 67 <div id="scrollable" style="overflow: scroll; height: 200px;"> 68 <div id="topspacer" style="height: 50px;"></div> 69 <iframe id="theiframe" style="border: 1px;" frameborder="1" src="helper_hittest_bug1715369_iframe.html"></iframe> 70 <div style="height: 200vh;"></div> 71 </div> 72 </div> 73 </body> 74 </html>