<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->

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

        function runTest()
        {
            makeDots(30, 30);
            
            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>
