<html>
<head>
    <script>
        if (window.testRunner)
          testRunner.dumpAsText();

        if (window.internals)
            internals.setPagination("RightToLeftPaginated", 0);

        function dumpLayers()
        {
            if (window.testRunner)
                document.getElementById('layers').innerText = window.internals.layerTreeAsText(document);
        }
        window.addEventListener('load', dumpLayers, false);
    </script>
    <style>
    .spacer {
      height: 350px;
      width: 100%;
      margin: 10px;
      background-color: silver;
    }
    
    .box {
      height: 100px;
      width: 100px;
      margin: 10px;
      background-color: blue;
    }
    .composited {
      -webkit-transform: translateZ(0);
    }
    </style>
</head>
<body>

  <div class="spacer"></div>
  <div class="spacer"></div>
  <div class="composited box"></div>
<pre id="layers">Layer tree goes here in DRT</pre>

</body>
</html>
