<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Test for http://bugs.webkit.org/show_bug.cgi?id=12885</title>
    <style type="text/css">
        div.wide { width: 100px; height: 50px; }
        div.narrow { width: 50px; }
        div.tall { width: 50px; height: 100px; }
        div.short { height: 50px; width: 50px; }
        #main-content { float: left; width: 100px; height: 80px; }
        #target3 { display: none; clear: both; height: 20px; background: green; }
    </style>
    <script>
        if (window.testRunner)
            testRunner.waitUntilDone();
        function runTest()
        {
            document.getElementById('target1').style.width = 'auto';
            document.getElementById('target2').style.height = 'auto';
            document.getElementById('target3').style.display = 'block';
            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head>
<body onload="setTimeout(runTest, 0);">
    <div style="position: absolute; border: medium solid green; top: 8px; height: 100px;">
        <div class="narrow" id="target1">
            <div class="wide"></div>
        </div>
    </div>

    <div style="position: absolute; border: medium solid green; top: 158px; width: 100px;">
        <div class="short" id="target2">
            <div class="tall"></div>
        </div>
    </div>

    <div style="position: absolute; top: 308px;">
        <div style="background: green;">
            <div style="position: relative;">
                <div id="main-content">
                </div>
            </div>
            <div id="target3"></div>
        </div>
    </div>
</body>
</html>
