<!doctype html>
<html>
<head>
    <title>
        This test verifies that a software layer will be promoted to a composited layer
        if it intersects a composited layer's drop shadow.
    </title>
    <!-- If the test passes, the light green drop shadow should appear over the the black div where they intersect. -->
    <style>
        #software {
            background-color: green;

            position: absolute;
            top: 0;
            left: 0;
            width: 100px;
            height: 100px;
        }
        #composited {
            background-color: black;
            -webkit-filter: drop-shadow(-25px -25px 0 gray);

            position: absolute;
            top: 105px;
            left: 105px;
            width: 100px;
            height: 100px;
            -webkit-transform: translate3d(0, 0, 0);
        }
    </style>
</head>
<body>
    <div id="composited"></div>
    <div id="software"></div>
    <pre id="console"></pre>
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            document.getElementById("console").appendChild(document.createTextNode(window.internals.layerTreeAsText(document)));
        }
    </script>
</body>
</html>

