<html>
<head>
<style>
    #container {
        -webkit-transform: translate(-10px, 0px);
    }

    #indicator {
        position: absolute;
        left: 15px;
        top: 0px;
        height: 256px;
        width: 256px;
        background-color: red;
    }

    #green {
        position: absolute;
        left: 0px;
        top: 0px;
        width: 300px;
        height: 300px;
        background-color: green;
    }

    #composited {
        position: absolute;
        left: 400px;
        -webkit-transform:translateZ(0);
    }

    #layertree {
        position: absolute;
        left: 10000px;
        top: 0px;
    }

    body {
        overflow: hidden;
    }

</style>

<script>
    if (window.testRunner) {
        testRunner.dumpAsText(true);
        window.addEventListener('load', function() {
            document.getElementById("layertree").innerText = window.internals.layerTreeAsText(document);
        }, false);
    }
</script>

<body>
    <div id="container">
        <!-- This red square should not be visible -->
        <div id="indicator"></div>
        <div id="composited"></div>
    </div>

    <!-- This green square should render completely on top of the red one -->
    <div id="green"></div>

    <pre id="layertree"></pre>
</body>
</html>
