<!DOCTYPE html>

<html>
<head>
    <style>
        .container {
            height: 200px;
            width: 200px;
            margin: 10px;
        }
        
        .composited {
            -webkit-transform: translateZ(0);
        }
        
        .child {
            position: relative;
            height: 100%;
            width: 100%;
        }
    </style>
    <script>
        if (window.testRunner)
            testRunner.dumpAsText();

        function dumpLayers()
        {
            var layersResult = document.getElementById('layers');
            if (window.testRunner)
                layersResult.innerText = window.internals.layerTreeAsText(document);
        }

        window.addEventListener('load', dumpLayers, false)
    </script>
</head>
<body>
    <div class="composited container">
        <div class="child">
        </div>
    </div>

    <div class="composited container">
        <div class="child">
            <div class="child">
            </div>
        </div>
    </div>

    <div class="composited container">
        <div class="child" style="visibility:hidden">
            Child content
        </div>
    </div>

    <div class="composited container">
        <div class="child" style="visibility:hidden">
            Child content
            <div class="child" style="visibility:visible">
                Grandchild content
            </div>
        </div>
    </div>

    <div class="composited container">
        <div class="child" style="visibility:hidden">
            <div class="child" style="visibility:visible; border: 1px solid black">
            </div>
        </div>
    </div>

<pre id="layers">Layer tree goes here in DRT</pre>
</body>
</html>
