helper_drag_bug1794590.html (2177B)
1 <!DOCTYPE HTML> 2 <html> 3 4 <head> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width; initial-scale=1.0"> 7 <title>Test for bug 1794590</title> 8 <script type="application/javascript" src="apz_test_native_event_utils.js"></script> 9 <script type="application/javascript" src="apz_test_utils.js"></script> 10 <script src="/tests/SimpleTest/paint_listener.js"></script> 11 <script type="text/javascript"> 12 13 const utils = SpecialPowers.getDOMWindowUtils(window); 14 15 async function test() { 16 // Zoom in. This is part of the bug 1794590 STR. 17 let resolution = 3.0; 18 utils.setResolutionAndScaleTo(resolution); 19 await promiseApzFlushedRepaints(); 20 21 let scrollPromise = new Promise(resolve => { 22 subframe.addEventListener("scroll", resolve, { once: true }); 23 }); 24 25 var dragFinisher = await promiseVerticalScrollbarDrag(subframe, 20); 26 if (!dragFinisher) { 27 ok(true, "No scrollbar, can't do this test"); 28 return; 29 } 30 31 // the events above might be stuck in APZ input queue for a bit until the 32 // layer is activated, so we wait here until the scroll event listener is 33 // triggered. 34 await scrollPromise; 35 36 await dragFinisher(); 37 38 // Flush everything just to be safe 39 await promiseOnlyApzControllerFlushed(); 40 41 ok(subframe.scrollTop > 0, "Scrollbar drag resulted in a scroll position of " + subframe.scrollTop); 42 } 43 44 waitUntilApzStable() 45 .then(test) 46 .then(subtestDone, subtestFailed); 47 48 </script> 49 <style> 50 #subframe { 51 width: 200px; 52 height: 100px; 53 margin: 100px; 54 background-color: cyan; 55 overflow: scroll; 56 white-space: pre; 57 } 58 #content { 59 width: 200px; 60 height: 200px; 61 background: linear-gradient(green, blue); 62 } 63 </style> 64 </head> 65 66 <body> 67 <div id="subframe"> 68 <div id="content"></div>> 69 </div> 70 </body> 71 72 </html>