<!DOCTYPE HTML>
<html>
    <script>
        if (window.testRunner)
            window.testRunner.waitUntilDone();
        function addIsolation() {
            var isolator = document.getElementById('blending');
            isolator.style['mix-blend-mode'] = "difference";
            if (window.testRunner)
                window.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 style="isolation: isolate">
                <rect id="blending" x="0" y="0" width="200" height="200" style="fill: green;"/>
            </g>
        </svg>
    </body>
</html>
