tor-browser

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

test_scroll_event_ordering.html (1740B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=785588
      5 -->
      6 <head>
      7  <title>Test for Bug 785588 --- ordering of scroll-related events</title>
      8  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      9  <script src="/tests/SimpleTest/EventUtils.js"></script>
     10  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     11 </head>
     12 <body>
     13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=785588">Mozilla Bug 785588</a>
     14 <div id="content">
     15  <div id="d" style="border:2px solid black; width:100px; height:100px; overflow:auto">
     16    <div id="inner" style="height:200px;">Hello</div>
     17  </div>
     18 </div>
     19 <pre id="test">
     20 <script>
     21 SimpleTest.waitForExplicitFinish();
     22 
     23 var smoothScrollPref = "general.smoothScroll";
     24 
     25 var d = document.getElementById("d");
     26 d.scrollTop = 0;
     27 var inner = document.getElementById("inner");
     28 
     29 var state = "initial";
     30 
     31 function onFrame() {
     32  is(state, "didOnScroll", "Must have got scroll event already");
     33  state = "didOnFrame";
     34  SimpleTest.finish();
     35 }
     36 
     37 function onScroll() {
     38  is(state, "initial", "Must be in initial state");
     39  ok(d.scrollTop > 0, "Must have scrolled by some amount (got " + d.scrollTop + ")");
     40  state = "didOnScroll";
     41 }
     42 
     43 function doTest() {
     44  window.getSelection().collapse(inner.firstChild, 0);
     45  window.requestAnimationFrame(onFrame);
     46  d.onscroll = onScroll;
     47  d.scroll(0, 100);
     48 }
     49 
     50 function prepareTest() {
     51  // Start the test after we've gotten at least one rAF callback, to make sure
     52  // that rAF is no longer throttled. (See bug 1145439.)
     53  window.requestAnimationFrame(function() {
     54    SpecialPowers.pushPrefEnv({"set":[[smoothScrollPref, false]]}, doTest);
     55  });
     56 }
     57 
     58 SimpleTest.waitForFocus(prepareTest);
     59 
     60 </script>
     61 </pre>
     62 </body>
     63 </html>