<!DOCTYPE HTML>
<head>
    <!-- This test will check if the isolation flag is on after removing mix-blend-mode from an element if the isolating element has other blending descendants. -->
    <link rel="stylesheet" href="resources/blending-style.css">
    <style>
        div {
            /* This forces render layers, avoiding normal flow only issues */
            position: relative;
        }
    </style>
</head>
<body>
    <div class="isolating lime box" style="top: 50px;">
        <div class="isolating yellow box" style="left: 50px;">
            <div class="box">
                <div class="fuchsia box difference" style="left:-25px; top: -50px;"></div>
            </div>
            <div class="box">
                <div id="target" class="fuchsia box difference" style="left:-25px; top: -50px;"></div>
            </div>
        </div>
    </div>
    <script type="text/javascript">
        if (window.testRunner)
            window.testRunner.waitUntilDone();

        function change() {
            var target = document.getElementById("target");
            target.className = "fuchsia box";

            if (window.testRunner)
                window.testRunner.notifyDone();
        }

        window.setTimeout("change()", 10);
    </script>
</body>
