<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<style type="text/css">
    div.test { width: 200px; height: 120px; border: 1px solid blue; padding: 10px; }
</style>
    <script type="text/javascript">
        if (window.testRunner)
            testRunner.waitUntilDone();
        function runTest()
        {
            document.getElementById('a').style.height = '40px';
            document.getElementById('b').style.height = '60px';
            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=6301">Bugzilla bug 6301</a> REGRESSION: Border repaint glitch</p>

<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> 
The boxes will resize, maintaining their solid red rectangular borders.
</p>

<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>  
The boxes will resize, but the borders will break. The first box will be missing
small segments from either side of its bottom border. The second box will have
small red horizontal segments protruding inwards from both sides of the border,
where the bottom border was before.
</p>

<div class="test">
    <div style="background: teal; padding: 0; border: solid red 4px;">
        <div id="a" style="height: 60px; margin: 10px; background:silver;"></div>
    </div>
</div>
<br>
<div class="test">
    <div style="background: teal; padding: 0; border: solid red 4px;">
        <div id="b" style="height: 40px; margin: 10px; background:silver;"></div>
    </div>
</div>

</body>
</html>
