<!DOCTYPE HTML>
<html>
    <script>
        if (window.testRunner)
            testRunner.waitUntilDone();
        function addIsolation() {
            var isolator = document.getElementById('isolator');
            isolator.style.opacity = "1";
            if (window.testRunner)
                testRunner.notifyDone();
        }
        window.addEventListener('load', function () {
            window.setTimeout(addIsolation, 10);
        }, false);
    </script>
    <body>
        <p>The test passes if you see a green square.</p>
        <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="200px" height="200px">
            <g id="isolator" style="opacity: 0.9">
                <rect x="0" y="0" width="200" height="200" style="fill: fuchsia; mix-blend-mode: difference;"/>
            </g>
        </svg>
    </body>
</html>
