<html>
<head>
    <style type="text/css" media="screen">
      body {
        height: 2200px;
      }

      .sticky {
        position: sticky;
        width: 100%;
        height: 50px;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: rgba(0, 128, 0, 0.8);
        border: 2px solid black;
      }
      
    </style>
    <script type="text/javascript" charset="utf-8">
      if (window.testRunner) {
        testRunner.waitUntilDone();
        testRunner.dumpAsText();
      }

      function doScroll()
      {
        window.setTimeout(function() {
          window.scrollTo(0, -20);
          if (window.testRunner) {
            document.getElementById('results').innerText = window.internals.scrollingStateTreeAsText();
            testRunner.notifyDone();
          }
        }, 10);
      }
      
      window.addEventListener('load', doScroll, false);
    </script>

    
</head>
<body>

<pre id="results"></pre>

<div class="sticky"></div>

</body>
</html>
