<!DOCTYPE>
<html>
<head>
<style type="text/css" media="screen">
    #background {
        width: 200px;
        height: 200px;
        display: block;
        background-color: green;
        -webkit-background-clip: content;
    }

    #content {
        width: 100px;
        height: 100px;
        display: block;
        background-color: blue;
    }

    .composited {
        -webkit-transform: translateZ(0);
    }
</style>
<script type="text/javascript" charset="utf-8">
    if (window.testRunner) {
        testRunner.waitUntilDone();
        testRunner.dumpAsText(true);
    }
    function doTest()
    {
        var bg = document.getElementById("background");

        window.setTimeout(function() {
            // Change the layer to become background only.
            bg.style.padding = "50px";
            if (window.testRunner) {
                window.setTimeout(function() {
                    testRunner.notifyDone();
                }, 0);
            }
        }, 0);
    }

    window.addEventListener('load', doTest, false);
</script>
</head>
<body>
<!-- When the test is done, there should only be a green square on the page -->
<div id="background" class="composited">
    <div id="content"></div>
</div>
</body>
</html>
