<!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()">
  Test where every node has a layer and the containing block structure matches the layer structure exactly.
  <br>
  The test passes if it completes without failing any assertions in Debug mode.
  <div>
    <div style="position:absolute" class="a">
      <div style="position:absolute; left:7px; top:3px" class="a">
        <div style="opacity: 0.8; left: 9px; width:50px; height:50px" class="b"></div>
        <div style="position:relative; left: 75px; width:50px; height:50px" class="a" id="innerLayer"></div>
      </div>
      <div style="opacity: 0.8; width: 25px; height: 37px" class="b"></div>
      <div style="position:absolute; left:7px; top:50px; width:40px; height:40px" class="a">
      </div>
    </div>
  </div>
</body>
</html
