<!--
Calculating collapsed borders for big tables is expensive, so we cache them and recalculate when needed.
Here we change tbody border width, expect that cache is invalidated and paint produces expected image.
-->
<html>
    <head>
        <title></title>
        <link rel="stylesheet" href="resources/cached.css">
        <script type="text/javascript">
            function test() {
                document.body.offsetTop;
                if (window.testRunner)
                    testRunner.displayAndTrackRepaints();
                document.getElementById("tbody").style.borderWidth = "4px";
            }
        </script>
    </head>
    <body onload="test()">
        <table style="border-collapse:collapse; border:1px solid blue">
            <tbody style="border:1px solid yellow" id="tbody">
                <tr>
                    <td style="border:2px solid lime"/>
                    <td/>
                </tr>
                <tr>
                    <td/>
                    <td/>
                </tr>
            </tbody>
            <tbody>
                <tr>
                    <td/>
                    <td/>
                </tr>
            </tbody>
        </table>
    </body>
</html>

