<!DOCTYPE html>
<html>
<script>jsTestIsAsync = true;</script>
<script src="../../resources/js-test-pre.js"></script>
<head>
<title>This tests that we issue repaints on vertical content properly.</title>
<style>
div {
  position: absolute;
  font-family: ahem;
  font-size: 10px;
}

.container {
  top: 10px;
  left: 10px;
  width: 80px;
  height: 80px;
  background-color: green;
  -webkit-writing-mode: vertical-rl;
}
</style>
</head>
<body>
<div style="position: absolute; left: 0px; top: 0px;">
  <div style="-webkit-writing-mode: vertical-lr; width: 120px; height: 120px; background-color: red; top: 5px; left: 5px;">
    <div style="-webkit-writing-mode: horizontal-tb; width: 100px; height: 100px; background-color: blue; top: 10px; left: 10px;">
      <div class=container>foobar</div>
    </div>
  </div>
</div>

<div style="position: absolute; left: 0px; top: 130px;">
  <div style="-webkit-writing-mode: vertical-lr; width: 120px; height: 120px; background-color: red; top: 5px; left: 5px;">
    <div style="width: 100px; height: 100px; background-color: blue; top: 10px; left: 10px;">
      <div class=container>foobar</div>
    </div>
  </div>
</div>

<div style="position: absolute; left: 0px; top: 260px;">
  <div style="width: 120px; height: 120px; background-color: red; top: 5px; left: 5px;">
    <div style="width: 100px; height: 100px; background-color: blue; top: 10px; left: 10px;">
      <div class=container>foobar</div>
    </div>
  </div>
</div>

<div style="position: absolute; left: 130px; top: 0px;">
  <div style="-webkit-writing-mode: horizontal-tb; width: 120px; height: 120px; background-color: red; top: 5px; left: 5px;">
    <div style="-webkit-writing-mode: horizontal-tb; width: 100px; height: 100px; background-color: blue; top: 10px; left: 10px;">
      <div class=container>foobar</div>
    </div>
  </div>
</div>

<div style="position: absolute; left: 130px; top: 130px;">
  <div style="-webkit-writing-mode: vertical-rl; width: 120px; height: 120px; background-color: red; top: 5px; left: 5px;">
    <div style="-webkit-writing-mode: vertical-rl; width: 100px; height: 100px; background-color: blue; top: 10px; left: 10px;">
      <div class=container>foobar</div>
    </div>
  </div>
</div>

<div style="position: absolute; left: 130px; top: 130px;">
  <div style="-webkit-writing-mode: vertical-rl; width: 120px; height: 120px; background-color: red; top: 5px; left: 5px;">
    <div style="width: 100px; height: 100px; background-color: blue; top: 10px; left: 10px;">
      <div class=container>foobar</div>
    </div>
  </div>
</div>

<div style="position: absolute; left: 130px; top: 260px;">
  <div style="position: relative; -webkit-writing-mode: vertical-rl; width: 120px; height: 120px; background-color: red; top: 5px; left: 5px;">
    <div style="width: 100px; height: 100px; background-color: blue; top: 10px; left: 10px;">
      <div class=container>foobar</div>
    </div>
  </div>
</div>

<script>
setTimeout(function() {
  if (window.internals)
    internals.startTrackingRepaints();

  var elements = document.getElementsByClassName("container");
  for (var i = 0; i < elements.length; ++i)
  	elements[i].innerText = "moobar";

  document.body.offsetWidth;

  if (window.internals) {
    debug(internals.repaintRectsAsText());
    shouldNotBe("internals.repaintRectsAsText().indexOf('25 25')", "-1");
    shouldNotBe("internals.repaintRectsAsText().indexOf('25 155')", "-1");
    shouldNotBe("internals.repaintRectsAsText().indexOf('25 285')", "-1");
    shouldNotBe("internals.repaintRectsAsText().indexOf('155 25')", "-1");
    shouldNotBe("internals.repaintRectsAsText().indexOf('155 155')", "-1");
    shouldNotBe("internals.repaintRectsAsText().indexOf('155 285')", "-1");
    internals.stopTrackingRepaints();
  }
  finishJSTest();
}, 0);
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
