<!DOCTYPE html>
<html>
<head>
    <script src="../../fast/repaint/resources/repaint.js"></script>
    <script>
        function repaintTest() {
            document.getElementById('behindStatic').setAttribute('fill', 'green');
            document.getElementById('translateStatic').setAttribute('x', '0');
            document.getElementById('transformStatic').setAttribute('transform', 'translate(0 0)');
            document.getElementById('scaleStatic').setAttribute('transform', 'scale(1)');
        }
    </script>
</head>
<body onload="runRepaintTest()">
Test for WK104207: This test passes if there are 4 green squares each with a smooth black circle in the top-left corner.<br/>
    <svg xmlns="http://www.w3.org/2000/svg" width="400" height="450">
        <!-- Test invalidating content behind the static content. -->
        <rect id="behindStatic" x="40" y="10" width="20" height="80" fill="red"/>
        <image x="0" y="0" width="100" height="100" buffered-rendering="static" xlink:href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'><rect x='10' y='10' width='30' height='80' fill='green'/><rect x='60' y='10' width='30' height='80' fill='green'/><circle cx='25' cy='25' r='10' fill='green' stroke='black' stroke-width='1'/></svg>"/>

        <!-- Test translating static content -->
        <rect x="20" y="140" width="30" height="30" fill="red"/>
        <image id="translateStatic" x="50" y="120" width="100" height="100" buffered-rendering="static" xlink:href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'><rect x='10%' y='10%' width='80%' height='80%' fill='green'/><circle cx='25' cy='25' r='10' fill='green' stroke='black' stroke-width='1'/></svg>"/>

        <!-- Test transforming static content -->
        <rect x="20" y="260" width="30" height="30" fill="red"/>
        <image id="transformStatic" transform="skewX(30)" x="0" y="240" width="100" height="100" buffered-rendering="static" xlink:href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'><rect x='10%' y='10%' width='80%' height='80%' fill='green'/><circle cx='25' cy='25' r='10' fill='green' stroke='black' stroke-width='1'/></svg>"/>

        <!-- Test scaling static content -->
        <rect x="20" y="380" width="30" height="30" fill="red"/>
        <image id="scaleStatic" transform="scale(0.1)" x="0" y="360" width="100" height="100" buffered-rendering="static" xlink:href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'><rect x='10%' y='10%' width='80%' height='80%' fill='green'/><circle cx='25' cy='25' r='10' fill='green' stroke='black' stroke-width='1'/></svg>"/>
    </svg>
</body>
</html>
