<!DOCTYPE html>
<html>
<head>
    <script src="../../fast/repaint/resources/repaint.js"></script>
    <script>
        function repaintTest() {
            document.getElementById('behind').setAttribute('fill', 'green');
            document.getElementById('translate').setAttribute('x', '0');
            document.getElementById('transform').setAttribute('transform', 'translate(0 0)');
            document.getElementById('scale').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 dynamic content. -->
        <rect id="behind" x="40" y="10" width="20" height="80" fill="red"/>
        <image x="0" y="0" width="100" height="100" 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 dynamic content -->
        <rect x="20" y="140" width="30" height="30" fill="red"/>
        <image id="translate" x="50" y="120" width="100" height="100" 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 dynamic content -->
        <rect x="20" y="260" width="30" height="30" fill="red"/>
        <image id="transform" transform="skewX(30)" x="0" y="240" width="100" height="100" 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 dynamic content -->
        <rect x="20" y="380" width="30" height="30" fill="red"/>
        <image id="scale" transform="scale(0.1)" x="0" y="360" width="100" height="100" 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>
