<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.display();
              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>
