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

