<!DOCTYPE HTML>
<head>
    <!-- This test will check if the isolation flag is properly computed when set mix-blend-mode to an element. -->
    <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">
        <div id="target" class="isolating yellow box" style="left: 50px;">
            <div class="box">
                <div class="fuchsia box difference" style="left:-25px;"></div>
            </div>
        </div>
    </div>
    <script type="text/javascript">
        if (window.testRunner)
            window.testRunner.waitUntilDone();

        function change() {
           var target = document.getElementById("target");
           target.className = "isolating yellow box difference";

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

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