<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="runRepaintTest()">
    <script xlink:href="../../fast/repaint/resources/repaint.js"></script>
    <title>There should be a single green 100x100 square.</title>
    <defs>
        <rect id="red-rect" width="100" height="100" fill="red"/>
        <rect id="green-rect" width="100" height="100" fill="green"/>

        <filter id="filter">
            <feImage id="feimage-green" xlink:href="#green-rect"/>
            <feImage id="feimage-red" xlink:href="#red-rect"/>
        </filter>
    </defs>
    <rect x="0" y="0" width="100" height="100" filter="url(#filter)" />
    <script>
    <![CDATA[
        function repaintTest() {
            // Move feimage-green after feimage-red
            var greenImage = document.getElementById("feimage-green");
            document.getElementById("filter").removeChild(greenImage);

            if (window.testRunner)
                testRunner.waitUntilDone();

            setTimeout(function() {
                document.getElementById("filter").appendChild(greenImage);
                if (window.testRunner)
                    testRunner.notifyDone();
            }, 0);
        }
    ]]>
    </script>
</svg>
