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

        if (window.internals)
            internals.setPagination("LeftToRightPaginated", 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: 300px;
      margin: 10px;
      background-color: silver;
    }
    
    .box {
      height: 100px;
      width: 100px;
      margin: 10px;
      background-color: blue;
    }
    .composited {
      -webkit-transform: translateZ(0);
    }
    </style>
</head>
<body style="-webkit-writing-mode: vertical-rl;">

  <div class="spacer"></div>
  <div class="spacer"></div>
  <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>
