<!DOCTYPE html>
<html>
<head>
<script>
function test()
{
    document.body.offsetTop;
    if (window.testRunner) {
        testRunner.displayAndTrackRepaints();
        testRunner.dumpAsText();
        finish();
    } else {
        window.setTimeout(finish, 50);
    }
}

function finish()
{
    var innerLayer = document.getElementById('innerLayer');
    innerLayer.style.left = '19px';
    innerLayer.style.top = '23px';
}
</script>
<style>
/* nodes that have layers and are containers for their children */
.a { outline: solid blue 1px }

/* nodes that have layers but are not containers for their children */
.b { outline: solid red 1px }

/* nodes that do not have layers */
.c { outline: solid green 1px }
</style>
</head>
<body onload="test()">
  Tests that moving a layer inside a transformed layer works.
  The test passes if it completes without failing any assertions in Debug mode.
  <div>
    <div style="position:absolute; top:50px" class="a">
      <div style="-webkit-transform:translate(27px, 47px); -webkit-transform:rotate(30deg)" class="a">
        <div style="opacity: 0.8; width:50px; height:50px" class="b"></div>
        <div style="position:absolute; width:20px; height:20px; left: 4px; top:7px" id="innerLayer" class="a">
          <div style="position:relative; width:15px; height:15px" class="a"></div>
        </div>
        <div style="opacity: 0.8; width:50px; height:50px" class="b"></div>
      </div>
    </div>
  </div>
</body>
</html
