<!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, 10)">
<p><b>BUG ID:</b> <a href="https://bugs.webkit.org/show_bug.cgi?id=8467">Bugzilla bug 8467</a> Block with percentage background-size doesn't repaint properly when it grows</p>

<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> 
The boxes will resize, and their background images will repaint correctly maintaining the set background-size.
</p>

<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>  
The boxes will resize, but the background images will leave artifacts on the sides.
</p>

<div class="test">
    <div style="background-image:url(resources/apple.jpg); -webkit-background-size: auto 100%;">
        <div id="a" style="height: 60px; margin: 10px; background-color:teal; opacity:0.5;"></div>
    </div>
</div>
<br>
<div class="test">
    <div style="background-image:url(resources/apple.jpg); -webkit-background-size: auto 100%;">
        <div id="b" style="height: 40px; margin: 10px; background:teal; opacity:0.5;"></div>
    </div>
</div>

</body>
</html>
