<html>
<head>
    <title>Test for http://bugs.webkit.org/show_bug.cgi?id=11935</title>
    <style type="text/css">
        div.square { width: 100px; height: 100px; }
    </style>
    <script type="text/javascript">
        if (window.testRunner)
            testRunner.waitUntilDone();
        function runTest()
        {
            document.getElementById("target").style.overflow = "hidden";
            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head>
<body onload="setTimeout(runTest, 0);">
    <div id="target" class="square">
        <div class="square" style="background-color: green"></div>
        <div class="square" style="background-color: red"></div>
    </div>
</body>
</html>
