helper_scroll_over_scrollbar.html (1511B)
1 <head> 2 <meta name="viewport" content="width=device-width; initial-scale=1.0"> 3 <title>Wheel-scrolling over scrollbar</title> 4 <script type="application/javascript" src="apz_test_native_event_utils.js"></script> 5 <script type="application/javascript" src="apz_test_utils.js"></script> 6 <script src="/tests/SimpleTest/paint_listener.js"></script> 7 <script type="application/javascript"> 8 9 async function test() { 10 var subframe = document.getElementById("scroll"); 11 12 // scroll over the scrollbar, and make sure the subframe scrolls 13 var scrollPos = subframe.scrollTop; 14 if (subframe.clientWidth == 200) { 15 // No scrollbar, abort the test. This can happen e.g. on local macOS runs 16 // with OS settings to only show scrollbars on trackpad/mouse activity. 17 ok(false, "No scrollbars found, cannot run this test!"); 18 return; 19 } 20 var scrollbarX = (200 + subframe.clientWidth) / 2; 21 await promiseNativeWheelAndWaitForScrollEvent(subframe, scrollbarX, 100, 22 0, -10); 23 ok(subframe.scrollTop > scrollPos, "subframe scrolled after wheeling over scrollbar"); 24 } 25 26 waitUntilApzStable() 27 .then(test) 28 .then(subtestDone, subtestFailed); 29 30 </script> 31 <style> 32 #scroll { 33 width: 200px; 34 height: 200px; 35 overflow: scroll; 36 } 37 #scrolled { 38 width: 200px; 39 height: 1000px; /* so the subframe has room to scroll */ 40 will-change: transform; /* to force active layers */ 41 } 42 </style> 43 </head> 44 <body> 45 <div id="scroll"> 46 <div id="scrolled"></div> 47 </div> 48 </body>