<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <script src="../../../resources/run-after-layout-and-paint.js"></script>
  <script src="text-based-repaint.js"></script>
  <script type="text/javascript">
      function runRepaintTestAfterDisplay()
      {
          runAfterLayoutAndPaint(function() {
              runRepaintTest();
          });
      }

      function repaintTest()
      {
          document.getElementById('toMove').style.left = "150px";
          document.getElementById('toMove').style.backgroundColor = "green";
          if (window.testRunner)
              testRunner.notifyDone();
      }

      if (window.testRunner)
          testRunner.waitUntilDone();

      document.addEventListener("scroll", runRepaintTestAfterDisplay, false);
  </script>
</head>
  <body style="height: 820;">
    <p style="position: absolute; top: 330px">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: 406; left: 10px; z-index: -5;"></div>
  </body>
</html>
