<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <script type="text/javascript">
      function scrollAndRepaint()
      {
          scrollBy(0, 200);
          if (window.testRunner) {
              document.body.offsetTop;
              testRunner.displayAndTrackRepaints();
              repaintTest();
           } else {
              setTimeout(repaintTest, 15);
           }
      }
      function repaintTest()
      {
          document.getElementById('toMove').style.left = "150px";
          document.getElementById('toMove').style.backgroundColor = "green";
      }
  </script>
</head>
  <body onload="scrollAndRepaint()" style="height: 3000px;">
    <div style="position: fixed: top: 0; left: 0;">
      <p style="position: absolute; top: 210px">You should see a yellow rect on the left, and a green one on the right. No red pixels.</p>
      <div id="toMove" style="width: 100px; height: 100px; background-color: red; position: fixed; top: 70px; left: 10px;"></div>
      <div style="width: 100px; height: 100px; background-color: yellow; position: absolute; top: 270px; left: 10px; z-index: -5;"></div>
    </div>
  </body>
</html>
