<html>
<head>
    <link rel="stylesheet" href="resources/default.css">
    <script type="text/javascript">
        if (window.testRunner)
          testRunner.waitUntilDone();
        function repaintTest()
        {
            var absoluteDiv = document.getElementById('absoluteDiv');
            absoluteDiv.parentNode.removeChild(absoluteDiv);
            document.body.appendChild(absoluteDiv);
            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head>
<body style="height:2000px;" onload="setTimeout(repaintTest, 0)">
    <!-- You should see 1 green rectangle in the output and no red. -->
    <div style="top: 5000px;" class="fixed red"><div id="absoluteDiv" style="top:100px; left:100px;" class="absolute green"></div></div>
</body>
</html>
