tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>