tor-browser

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

test_smoothness.html (2172B)


      1 <html>
      2 <head>
      3  <title>Test Frame Uniformity While Scrolling</title>
      4  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      5  <script src="/tests/SimpleTest/EventUtils.js"></script>
      6  <script src="/tests/SimpleTest/paint_listener.js"></script>
      7  <script type="application/javascript" src="apz_test_utils.js"></script>
      8  <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
      9 
     10  <style>
     11  #content {
     12    height: 5000px;
     13    background: repeating-linear-gradient(#EEE, #EEE 100px, #DDD 100px, #DDD 200px);
     14  }
     15  </style>
     16  <script type="text/javascript">
     17    var scrollEvents = 100;
     18    var i = 0;
     19    // Scroll points
     20    var x = 100;
     21    var y = 150;
     22 
     23    SimpleTest.waitForExplicitFinish();
     24    var utils = SpecialPowers.getDOMWindowUtils(window);
     25 
     26    async function sendScrollEvent() {
     27      var scrollDiv = document.getElementById("content");
     28 
     29      if (i < scrollEvents) {
     30        i++;
     31        // Scroll diff
     32        var dx = 0;
     33        var dy = -10; // Negative to scroll down
     34        await synthesizeNativeWheel(scrollDiv, x, y, dx, dy);
     35        window.requestAnimationFrame(sendScrollEvent);
     36      } else {
     37        // Locally, with silk and apz + e10s, retina 15" mbp usually get ~1.0 - 1.5
     38        // w/o silk + e10s + apz, I get up to 7. Lower is better.
     39        // Windows, I get ~3. Values are not valid w/o hardware vsync
     40        var uniformities = utils.getFrameUniformityTestData();
     41        for (var j = 0; j < uniformities.layerUniformities.length; j++) {
     42          var layerResult = uniformities.layerUniformities[j];
     43          var layerAddr = layerResult.layerAddress;
     44          var uniformity = layerResult.frameUniformity;
     45          var msg = "Layer: " + layerAddr.toString(16) + " Uniformity: " + uniformity;
     46          SimpleTest.ok((uniformity >= 0) && (uniformity < 4.0), msg);
     47        }
     48        SimpleTest.finish();
     49      }
     50    }
     51 
     52    function startTest() {
     53      window.requestAnimationFrame(sendScrollEvent);
     54    }
     55 
     56    if (!isApzEnabled()) {
     57      SimpleTest.ok(true, "APZ not enabled, skipping test");
     58      SimpleTest.finish();
     59    }
     60    </script>
     61 </head>
     62 
     63 <body>
     64  <div id="content">
     65  </div>
     66 </body>
     67 </html>