helper_zoomToFocusedInput_fixed_bug1673511.html (1494B)
1 <!DOCTYPE> 2 <html> 3 <head> 4 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 5 <title>Checking zoomToFocusedInput scrolls on position: fixed</title> 6 <script type="application/javascript" src="apz_test_utils.js"></script> 7 <script type="application/javascript" src="apz_test_native_event_utils.js"></script> 8 <script src="/tests/SimpleTest/paint_listener.js"></script> 9 </head> 10 <body> 11 <div> 12 <div style="z-index: 100; position: fixed; width: 300px; height: 300px; overflow-y: scroll;" id="container"> 13 <div style="height: 1000px;">ABC</div> 14 <input type="text"> 15 </div> 16 <!-- Leave additional room below the element so it can be scrolled to the center --> 17 <div style="height: 3000px;">ABC</div> 18 </div> 19 <script type="application/javascript"> 20 async function test() { 21 let utils = SpecialPowers.getDOMWindowUtils(window); 22 23 let input = document.querySelector("input"); 24 let container = document.querySelector("#container"); 25 let originalScrollTop = container.scrollTop; 26 27 input.focus({ preventScroll: true }); 28 await waitToClearOutAnyPotentialScrolls(window); 29 ok(container.scrollTop == originalScrollTop, "scroll position keeps top"); 30 31 let waitForScroll = waitForScrollEvent(container); 32 utils.zoomToFocusedInput(); 33 await waitForScroll; 34 await promiseApzFlushedRepaints(); 35 36 ok(container.scrollTop > originalScrollTop, "scroll position isn't top"); 37 } 38 39 waitUntilApzStable().then(test).then(subtestDone, subtestFailed); 40 </script> 41 </body> 42 </html>