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