<!--
Calculating collapsed borders for big tables is expensive, so we cache them and recalculate when needed.
Here we change row 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("row").style.borderWidth = "4px";
            }
        </script>
    </head>
    <body onload="test()">
        <table style="border-collapse:collapse; border:1px solid blue">
            <tr style="border:1px solid yellow" id="row">
                <td style="border:2px solid lime"/>
            </tr>
            <tr>
                <td/>
            </tr>
        </table>
    </body>
</html>

