<!DOCTYPE html>

<html>
<head>
    <style>
        .columns {
            -webkit-column-count: 400px;
            -webkit-writing-mode: vertical-rl;
        }
        .spacer {
          height: 200px;
          width: 150px;
          margin: 10px;
          background-color: silver;
        }
        .box {
          height: 100px;
          width: 100px;
          margin: 10px;
          background-color: blue;
        }
        .composited {
          -webkit-transform: translateZ(0);
        }
    </style>
    <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>
</head>
<body>

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

</body>
</html>
