<!DOCTYPE html>

<html>
<head>
    <style>
        .box {
            width: 200px;
            height: 100px;
            background-color: blue;
            margin: 52px 30px;
            position: relative;
            box-shadow: 0 0 10px black;
            transition: -webkit-transform 10s;
            -webkit-transform: translateX(0);
        }
        
        .dot {
            position: absolute;
            top: 0;
            left: 0;
            height: 4px;
            width: 4px;
            background-color: silver;
        }
        
        body.changed .box {
            -webkit-transform: translateX(100px);
        }
    </style>
    <script src="../resources/compositing-test-utils.js"></script>
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
        }

        function runTest()
        {
            makeDots(40, 20);
            
            window.setTimeout(function() {
                document.body.classList.add('changed');
                window.setTimeout(dumpLayersWithoutTransforms, 0);
            }, 0);
        }
        
        window.addEventListener('load', runTest, false);
    </script>
</head>
<body>

    <div class="box">
    </div>
<pre id="layers"></pre>
</body>
</html>
