<!DOCTYPE html>

<html>
<head>
    <style>
      body {
        height: 2200px;
      }
      
      .fixed {
        position: fixed;
        top: 0;
        left: 0;
        margin: 10px;
        height: 50px;
        background-color: rgba(0, 128, 0, 0.8);
        border: 2px solid black;
        box-shadow: 0 0 10px black;
      }
      
      .top, .bottom {
        width: 96%;
      }

      .left {
        top: 200px;
        left: 10px;
        width: 150px;
        height: 300px;
      }

      .right {
        top: 200px;
        left: auto;
        right: 10px;
        width: 150px;
        height: 300px;
      }
      
      .bottom {
        top: auto;
        bottom: 10px;
      }
      
    </style>
    <script>
      if (window.testRunner) {
        testRunner.waitUntilDone();
        testRunner.dumpAsText();
      }

      function doScroll()
      {
        window.setTimeout(function() {
          window.scrollTo(0, 200);
          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="fixed top">
  This is the top bar.
</div>
<div class="fixed left">
  This is the left bar.
</div>
<div class="fixed right">
  This is the right bar.
</div>
<div class="fixed bottom">
  This is the bottom bar.
</div>

</body>
</html>
