<!DOCTYPE html>

<html>
<head>
  <style type="text/css" media="screen">
    
    .composited {
      height: 30px;
      width: 30px;
      -webkit-transform:translateZ(0);
    }
    
    .overflow {
      position: absolute;
      top: 20px;
      left: 20px;
      overflow-y: scroll;
      height: 200px;
      width: 300px;
      border: solid;
    }

    .box {
      position: relative;
      height: 100px;
      width: 200px;
      margin: 55px 20px;
      background-color: blue;
      font-size: 18pt;
      text-align: center;
    }
    
    #results {
      margin-top: 200px;
    }
  </style>
  <script type="text/javascript" charset="utf-8">
    
    if (window.testRunner) {
      testRunner.dumpAsText();
      testRunner.waitUntilDone();
    }

    function doTest()
    {
      window.setTimeout(function() {
        var scrollDiv = document.getElementById('scroller');
        scrollDiv.scrollTop = 200;

        
        if (window.testRunner) {
          document.getElementById('results').innerText = window.internals.layerTreeAsText(document);
          testRunner.notifyDone();
        }
      }, 0);
    }
    
    window.addEventListener('load', doTest, false);
  </script>
</head>
<body>

  <div class="composited"></div>

  <div id="scroller" class="overflow">
    <div class="box" style="width: 200px";></div>
    <div class="box" style="width: 210px;"></div>
  </div>
  <pre id="results"></pre>

</body>
</html>
