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

