<!DOCTYPE html>
<html>
<head>
<title>This tests repaint clipping after move. Pass if all borders are painted.</title>
<head>
<style>
  div {
    position: fixed;
    border: red solid 0.5px;
    width: 20px;
    height: 20px; 
    left: 0px;
    top: 0px;
  }
</style>
</head>
<body>
<p id="container"></p>
<script>
  var container = document.getElementById("container");
  adjustment = 0;
  for (i = 0; i < 4; ++i) {
    adjustment+=0.1;
    for (j = 0; j < 40; ++j) {
      var e = document.createElement("div");
      e.style.top = (25 * i + adjustment) + "px";
      e.style.left = (25 * j  + adjustment) + "px";
      container.appendChild(e);
    }
  }
  
  function move() {
    divs = document.getElementsByTagName("div");
    for (i = 0; i < divs.length; ++i)
      divs[i].style.left = (parseFloat(divs[i].style.left) + 0.2) + "px";

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

  setTimeout(move, 100);
</script>
</body>
</html>