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

