<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
    <script type="text/javascript">
        if (window.testRunner)
            testRunner.waitUntilDone();
        function runTest()
        {
            document.getElementById('target').style.width='50px';
            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head>
<body onload="setTimeout(runTest, 0);">
<p><b>BUG ID:</b> <a href="https://bugs.webkit.org/show_bug.cgi?id=6278">Bugzilla bug 6278</a> REGRESSION: Incomplete repaint when table cell width changes during layout</p>

<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> 
The purple and green rects will resize, and there will remain separated by a blue horizontal line.
</p>

<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>  
The purple and green rects will resize, but the blue separator will disappear.
</p>
<table style="width: 300px;">
<tr>
    <td id="col1" style="background: blue; padding:0;">
        <div style="background: #eeeeff;">
            Curabitur pretium, quam quis semper malesuada, est libero feugiat libero, vel fringilla orci nibh sed neque. Quisque eu nulla non nisi molestie accumsan. Etiam tellus urna, laoreet ac, laoreet non, suscipit sed, sapien. Phasellus vehicula, sem at posuere vehicula, augue nibh molestie nisl, nec ullamcorper lacus ante vulputate pede.
        </div>
        <div style="background: #eeffee; margin-top: 5px; height: 50px;">
        </div>
    </td>
    <td id="target"></td>
</tr>
</table>

</body>
</html>
