<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[167424] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/167424">167424</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2014-04-17 01:42:53 -0700 (Thu, 17 Apr 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>[CSS Blending] Isolation descendant dependent flags are not updated correctly
https://bugs.webkit.org/show_bug.cgi?id=130892

Patch by Ion Rosca &lt;rosca@adobe.com&gt; on 2014-04-17
Reviewed by Dean Jackson.

Source/WebCore:
The isolation descendant dependent flag (m_hasUnisolatedBlendingDescendants)
will help us to determine if a layer should isolate blending descendants or not.
The m_hasUnisolatedBlendingDescendants flag should be set for layers that have blending descendant layers
not isolated by descendant stacking contexts.
An element isolatesBlending() if it has this flag set and creates stacking context.

Tests: css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html
       css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html
       css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html
       css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html
       css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html
       css3/compositing/blend-mode-isolation-flags-turn-off-blending.html
       css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html
       css3/compositing/blend-mode-isolation-flags-turn-on-blending.html
       css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateBlendMode):
(WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
    When a layer has blending and it hasn't had it before, we set the isolation
flag for all its ancestors up to the first layer creating stacking context.
I removed the isComposited() check here. Isolation flags should be correct regardless
of compositing state. Moreover, if this method is called from styleChanged(),
the compositing state might not be accurate, it's going to be recalculated afterwards.
(WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):
    When a layer doesn't have blending, but it used to have it before, we mark
the isolation flag as dirty for all its ancestors up to the first layer
creating stacking context. The isolation flags will be recalculated by
RenderLayer::updateDescendantDependentFlags.
(WebCore::RenderLayer::updateDescendantDependentFlags):
    Evaluates if the layer has unisolated blending descendants by traversing
the layer subtree.
(WebCore::RenderLayer::addChild):
    When adding a subtree that has blending or has some unisolated descendants,
we set the flag for all the ancestors, up to the stacking context layer.
(WebCore::RenderLayer::removeChild):
    When removing a subtree that had blending or had some unisolated descendants,
we dirty the flag so that it could be reevaluated.
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::updateTransform):
* rendering/RenderLayer.h:
    Rename m_hasBlendedElementInChildStackingContext =&gt; m_hasUnisolatedBlendingDescendants
and m_hasBlendedElementInChildStackingContextStatusDirty =&gt; m_hasUnisolatedBlendingDescendantsStatusDirty,
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
    Add an assert to make sure that if m_hasUnisolatedCompositedBlendingDescendants is true,
then m_hasUnisolatedBlendingDescendants is true as well.

LayoutTests:
* css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html: Added.
* css3/compositing/blend-mode-isolation-flags-turn-off-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html: Added.
* css3/compositing/blend-mode-isolation-flags-turn-on-blending.html: Added.
* css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html: Added.
* platform/mac/css3/compositing/blend-mode-background-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt:
* platform/mac/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
* platform/mac/css3/compositing/blend-mode-layers-expected.txt:
* platform/mac/css3/compositing/blend-mode-reflection-expected.txt:
* platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt:
* platform/mac/css3/compositing/blend-mode-simple-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodebackgroundexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-background-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolatedgroup1expectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolatedgroup2expectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolatedgroup3expectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodelayersexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-layers-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodereflectionexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-reflection-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodesimplecompositedexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodesimpleexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-simple-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerh">trunk/Source/WebCore/rendering/RenderLayer.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerCompositorcpp">trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestscss3compositingblendmodeisolationflagsappendnonstackingcontextblendinghtml">trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html</a></li>
<li><a href="#trunkLayoutTestscss3compositingblendmodeisolationflagsappendstackingcontextblendinghtml">trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html</a></li>
<li><a href="#trunkLayoutTestscss3compositingblendmodeisolationflagsremovenonstackingcontextblendinghtml">trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html</a></li>
<li><a href="#trunkLayoutTestscss3compositingblendmodeisolationflagsremovestackingcontextblendinghtml">trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html</a></li>
<li><a href="#trunkLayoutTestscss3compositingblendmodeisolationflagsturnoffblendingnoisolationhtml">trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html</a></li>
<li><a href="#trunkLayoutTestscss3compositingblendmodeisolationflagsturnoffblendinghtml">trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-blending.html</a></li>
<li><a href="#trunkLayoutTestscss3compositingblendmodeisolationflagsturnoffstackingcontexthtml">trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html</a></li>
<li><a href="#trunkLayoutTestscss3compositingblendmodeisolationflagsturnonblendinghtml">trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-on-blending.html</a></li>
<li><a href="#trunkLayoutTestscss3compositingblendmodeisolationflagsturnonstackingcontexthtml">trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsappendnonstackingcontextblendingexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsappendstackingcontextblendingexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsremovenonstackingcontextblendingexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsremovestackingcontextblendingexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsturnoffblendingexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsturnoffblendingnoisolationexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsturnoffstackingcontextexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsturnonblendingexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-blending-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsturnonstackingcontextexpectedtxt">trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/LayoutTests/ChangeLog        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2014-04-17  Ion Rosca  &lt;rosca@adobe.com&gt;
+
+        [CSS Blending] Isolation descendant dependent flags are not updated correctly
+        https://bugs.webkit.org/show_bug.cgi?id=130892
+
+        Reviewed by Dean Jackson.
+
+        * css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html: Added.
+        * css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html: Added.
+        * css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html: Added.
+        * css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html: Added.
+        * css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html: Added.
+        * css3/compositing/blend-mode-isolation-flags-turn-off-blending.html: Added.
+        * css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html: Added.
+        * css3/compositing/blend-mode-isolation-flags-turn-on-blending.html: Added.
+        * css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html: Added.
+        * platform/mac/css3/compositing/blend-mode-background-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
+        * platform/mac/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
+        * platform/mac/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt: Added.
+        * platform/mac/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt: Added.
+        * platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
+        * platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
+        * platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
+        * platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
+        * platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
+        * platform/mac/css3/compositing/blend-mode-layers-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-reflection-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt:
+        * platform/mac/css3/compositing/blend-mode-simple-expected.txt:
+
</ins><span class="cx"> 2014-04-16  Brian J. Burg  &lt;burg@cs.washington.edu&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Replay: memoize fallback time values for document.lastModified
</span></span></pre></div>
<a id="trunkLayoutTestscss3compositingblendmodeisolationflagsappendnonstackingcontextblendinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html                                (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,60 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;!-- This test will check if the isolation flag is properly computed when we append a subtree
+          having blending elements. --&gt;
+        &lt;style&gt;
+            div {
+                width: 100px;
+                height: 100px;
+                /* This forces render layers, avoiding normal flow only issues */
+                position: relative;
+            }
+
+            .stacking-context {
+                -webkit-isolation: isolate;
+                isolation: isolate;
+            }
+
+            .blending {
+                -webkit-mix-blend-mode: difference;
+                mix-blend-mode: difference;
+            }
+
+            .leaf {
+                background-color: #ff00ff;
+                left:-25px;
+            }
+
+            .append-root {
+                background-color: #ffff44;
+            }
+        &lt;/style&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;div class=&quot;stacking-context&quot; style=&quot;background-color: #00ff00;&quot;&gt;
+            &lt;div id=&quot;target&quot; style=&quot;background-color: #ffff00; left: 50px;&quot;&gt;&lt;/div&gt;
+        &lt;/div&gt;
+        &lt;script type=&quot;text/javascript&quot;&gt;
+            if (window.testRunner)
+                window.testRunner.waitUntilDone();
+
+            function change() {
+                var blendingElement = document.createElement(&quot;div&quot;);
+                blendingElement.className = &quot;blending leaf&quot;;
+
+                var toAppend = document.createElement(&quot;div&quot;);
+                toAppend.className = &quot;append-root&quot;;
+                toAppend.appendChild(blendingElement);
+
+                var target = document.getElementById(&quot;target&quot;);
+                target.appendChild(toAppend);
+
+                if (window.testRunner)
+                    window.testRunner.notifyDone();
+            }
+
+            window.setTimeout(&quot;change()&quot;, 10);
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscss3compositingblendmodeisolationflagsappendstackingcontextblendinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html                                (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,60 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;!-- This test will check if the isolation flag is properly computed when we append a subtree
+            having blending elements and the root of this subtree creates a stacking context. --&gt;
+        &lt;style&gt;
+            div {
+                width: 100px;
+                height: 100px;
+                /* This forces render layers, avoiding normal flow only issues */
+                position: relative;
+            }
+
+            .stacking-context {
+                -webkit-isolation: isolate;
+                isolation: isolate;
+            }
+
+            .blending {
+                -webkit-mix-blend-mode: difference;
+                mix-blend-mode: difference;
+            }
+
+            .leaf {
+                background-color: #ff00ff;
+                left:-25px;
+            }
+
+            .append-root {
+                background-color: #ffff44;
+            }
+        &lt;/style&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;div class=&quot;stacking-context&quot; style=&quot;background-color: #00ff00;&quot;&gt;
+            &lt;div id=&quot;target&quot; style=&quot;background-color: #ffff00; left: 50px;&quot;&gt;&lt;/div&gt;
+        &lt;/div&gt;
+        &lt;script type=&quot;text/javascript&quot;&gt;
+            if (window.testRunner)
+                window.testRunner.waitUntilDone();
+
+            function change() {
+                var blendingElement = document.createElement(&quot;div&quot;);
+                blendingElement.className = &quot;blending leaf&quot;;
+
+                var toAppend = document.createElement(&quot;div&quot;);
+                toAppend.appendChild(blendingElement);
+                toAppend.className = &quot;stacking-context append-root&quot;;
+
+                var target = document.getElementById(&quot;target&quot;);
+                target.appendChild(toAppend);
+
+                if (window.testRunner)
+                    window.testRunner.notifyDone();
+            }
+
+            window.setTimeout(&quot;change()&quot;, 10);
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscss3compositingblendmodeisolationflagsremovenonstackingcontextblendinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html                                (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,57 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;!-- This test will check if the isolation flag is properly computed when we remove a subtree
+            having blending elements. --&gt;
+        &lt;style&gt;
+            div {
+                width: 100px;
+                height: 100px;
+                /* This forces render layers, avoiding normal flow only issues */
+                position: relative;
+            }
+
+            .stacking-context {
+                -webkit-isolation: isolate;
+                isolation: isolate;
+            }
+
+            .blending {
+                -webkit-mix-blend-mode: difference;
+                mix-blend-mode: difference;
+            }
+
+            .leaf {
+                background-color: #ff00ff;
+                left:-25px;
+            }
+
+            .append-root {
+                background-color: #ffff44;
+            }
+        &lt;/style&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;div class=&quot;stacking-context&quot; style=&quot;background-color: #00ff00;&quot;&gt;
+            &lt;div style=&quot;background-color: #ffff00; left: 50px;&quot;&gt;
+                &lt;div id=&quot;toremove&quot; class=&quot;append-root&quot;&gt;
+                    &lt;div class=&quot;blending leaf&quot;&gt;&lt;/div&gt;
+                &lt;/div&gt;
+            &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;script type=&quot;text/javascript&quot;&gt;
+            if (window.testRunner)
+                window.testRunner.waitUntilDone();
+
+            function change() {
+                var toremove = document.getElementById(&quot;toremove&quot;);
+                toremove.parentNode.removeChild(toremove);
+
+                if (window.testRunner)
+                    window.testRunner.notifyDone();
+            }
+
+            window.setTimeout(&quot;change()&quot;, 10);
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscss3compositingblendmodeisolationflagsremovestackingcontextblendinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html                                (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,57 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;!-- This test will check if the isolation flag is properly computed when we remove a subtree
+            having blending elements and the root of this subtree creates a stacking context. --&gt;
+        &lt;style&gt;
+            div {
+                width: 100px;
+                height: 100px;
+                /* This forces render layers, avoiding normal flow only issues */
+                position: relative;
+            }
+
+            .stacking-context {
+                -webkit-isolation: isolate;
+                isolation: isolate;
+            }
+
+            .blending {
+                -webkit-mix-blend-mode: difference;
+                mix-blend-mode: difference;
+            }
+
+            .leaf {
+                background-color: #ff00ff;
+                left:-25px;
+            }
+
+            .append-root {
+                background-color: #ffff44;
+            }
+        &lt;/style&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;div class=&quot;stacking-context&quot; style=&quot;background-color: #00ff00;&quot;&gt;
+            &lt;div style=&quot;background-color: #ffff00; left: 50px;&quot;&gt;
+                &lt;div id=&quot;toremove&quot; class=&quot;stacking-context append-root&quot;&gt;
+                    &lt;div class=&quot;blending leaf&quot;&gt;&lt;/div&gt;
+                &lt;/div&gt;
+            &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;script type=&quot;text/javascript&quot;&gt;
+            if (window.testRunner)
+                window.testRunner.waitUntilDone();
+
+            function change() {
+                var toremove = document.getElementById(&quot;toremove&quot;);
+                toremove.parentNode.removeChild(toremove);
+
+                if (window.testRunner)
+                    window.testRunner.notifyDone();
+            }
+
+            window.setTimeout(&quot;change()&quot;, 10);
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscss3compositingblendmodeisolationflagsturnoffblendingnoisolationhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html                                (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,51 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;!-- 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. --&gt;
+        &lt;style&gt;
+            div {
+                width: 100px;
+                height: 100px;
+                /* This forces render layers, avoiding normal flow only issues */
+                position: relative;
+            }
+
+            .stacking-context {
+                -webkit-isolation: isolate;
+                isolation: isolate;
+            }
+
+            .blending {
+                -webkit-mix-blend-mode: difference;
+                mix-blend-mode: difference;
+            }
+        &lt;/style&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;div class=&quot;stacking-context&quot; style=&quot;background-color: #00ff00; top: 50px;&quot;&gt;
+            &lt;div class=&quot;stacking-context&quot; style=&quot;background-color: #ffff00; left: 50px;&quot;&gt;
+                &lt;div&gt;
+                    &lt;div class=&quot;blending&quot; style=&quot;background-color: #ff00ff;left:-25px; top: -50px;&quot;&gt;&lt;/div&gt;
+                &lt;/div&gt;
+                &lt;div&gt;
+                    &lt;div id=&quot;target&quot; class=&quot;blending&quot; style=&quot;background-color: #ff00ff;left:-25px; top: -50px;&quot;&gt;&lt;/div&gt;
+                &lt;/div&gt;
+            &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;script type=&quot;text/javascript&quot;&gt;
+            if (window.testRunner)
+                window.testRunner.waitUntilDone();
+
+            function change() {
+                var target = document.getElementById(&quot;target&quot;);
+                target.className = &quot;&quot;;
+
+                if (window.testRunner)
+                    window.testRunner.notifyDone();
+            }
+
+            window.setTimeout(&quot;change()&quot;, 10);
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscss3compositingblendmodeisolationflagsturnoffblendinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-blending.html (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-blending.html                                (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-blending.html        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;!-- This test will check if the isolation flag is properly removed when we remove
+            the mix-blend-mode property from its descendants. --&gt;
+        &lt;style&gt;
+            div {
+                width: 100px;
+                height: 100px;
+                /* This forces render layers, avoiding normal flow only issues */
+                position: relative;
+            }
+
+            .stacking-context {
+                -webkit-isolation: isolate;
+                isolation: isolate;
+            }
+
+            .blending {
+                -webkit-mix-blend-mode: difference;
+                mix-blend-mode: difference;
+            }
+        &lt;/style&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;div class=&quot;stacking-context&quot; style=&quot;background-color: #00ff00;&quot;&gt;
+            &lt;div id=&quot;target&quot; class=&quot;blending stacking-context&quot; style=&quot;background-color: #ffff00; left: 50px;&quot;&gt;
+                &lt;div&gt;
+                    &lt;div class=&quot;blending&quot; style=&quot;background-color: #ff00ff;left:-25px;&quot;&gt;&lt;/div&gt;
+                &lt;/div&gt;
+            &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;script type=&quot;text/javascript&quot;&gt;
+            if (window.testRunner)
+                window.testRunner.waitUntilDone();
+
+            function change() {
+                var target = document.getElementById(&quot;target&quot;);
+                target.className = &quot;stacking-context&quot;;
+
+                if (window.testRunner)
+                    window.testRunner.notifyDone();
+            }
+
+            window.setTimeout(&quot;change()&quot;, 10);
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscss3compositingblendmodeisolationflagsturnoffstackingcontexthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html                                (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;!-- This test will check if the isolation flag is properly computed when we remove
+            the stacking context status from the isolating element. --&gt;
+        &lt;style&gt;
+            div {
+                width: 100px;
+                height: 100px;
+                /* This forces render layers, avoiding normal flow only issues */
+                position: relative;
+            }
+
+            .stacking-context {
+                -webkit-isolation: isolate;
+                isolation: isolate;
+            }
+
+            .blending {
+                -webkit-mix-blend-mode: difference;
+                mix-blend-mode: difference;
+            }
+
+        &lt;/style&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;div class=&quot;stacking-context&quot; style=&quot;background-color: #00ff00;&quot;&gt;
+            &lt;div id=&quot;target&quot; class=&quot;stacking-context&quot; style=&quot;background-color: #ffff00; left: 50px;&quot;&gt;
+                &lt;div&gt;
+                    &lt;div class=&quot;blending&quot; style=&quot;background-color: #ff00ff; left:-25px;&quot;&gt;&lt;/div&gt;
+                &lt;/div&gt;
+            &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;script type=&quot;text/javascript&quot;&gt;
+            if (window.testRunner)
+                window.testRunner.waitUntilDone();
+
+            function change() {
+                var target = document.getElementById(&quot;target&quot;);
+                target.className = &quot;&quot;;
+
+                if (window.testRunner)
+                    window.testRunner.notifyDone();
+            }
+
+            window.setTimeout(&quot;change()&quot;, 10);
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscss3compositingblendmodeisolationflagsturnonblendinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-on-blending.html (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-on-blending.html                                (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-on-blending.html        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;!-- This test will check if the isolation flag is properly computed
+        when set mix-blend-mode to an element. --&gt;
+        &lt;style&gt;
+            div {
+                width: 100px;
+                height: 100px;
+                /* This forces render layers, avoiding normal flow only issues */
+                position: relative;
+            }
+
+            .stacking-context {
+                -webkit-isolation: isolate;
+                isolation: isolate;
+            }
+
+            .blending {
+                -webkit-mix-blend-mode: difference;
+                mix-blend-mode: difference;
+            }
+        &lt;/style&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;div class=&quot;stacking-context&quot; style=&quot;background-color: #00ff00;&quot;&gt;
+            &lt;div id=&quot;target&quot; class=&quot;stacking-context&quot; style=&quot;background-color: #ffff00; left: 50px;&quot;&gt;
+                &lt;div&gt;
+                    &lt;div class=&quot;blending&quot; style=&quot;background-color: #ff00ff; left:-25px;&quot;&gt;&lt;/div&gt;
+                &lt;/div&gt;
+            &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;script type=&quot;text/javascript&quot;&gt;
+            if (window.testRunner)
+                window.testRunner.waitUntilDone();
+
+            function change() {
+               var target = document.getElementById(&quot;target&quot;);
+               target.className = &quot;blending stacking-context&quot;;
+
+                if (window.testRunner)
+                    window.testRunner.notifyDone();
+            }
+
+            window.setTimeout(&quot;change()&quot;, 10);
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscss3compositingblendmodeisolationflagsturnonstackingcontexthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html                                (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;!-- This test will check if the isolation flag is properly computed
+        when we set another element to be the isolating stacking context. --&gt;
+        &lt;style&gt;
+            div {
+                width: 100px;
+                height: 100px;
+                /* This forces render layers, avoiding normal flow only issues */
+                position: relative;
+            }
+
+            .stacking-context {
+                -webkit-isolation: isolate;
+                isolation: isolate;
+            }
+
+            .blending {
+                -webkit-mix-blend-mode: difference;
+                mix-blend-mode: difference;
+            }
+        &lt;/style&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;div class=&quot;stacking-context&quot; style=&quot;background-color: #00ff00;&quot;&gt;
+           &lt;div id=&quot;target&quot; class=&quot;&quot; style=&quot;background-color: #ffff00; left: 50px;&quot;&gt;
+                &lt;div&gt;
+                    &lt;div class=&quot;blending&quot; style=&quot;background-color: #ff00ff; left:-25px;&quot;&gt;&lt;/div&gt;
+                &lt;/div&gt;
+            &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;script type=&quot;text/javascript&quot;&gt;
+            if (window.testRunner)
+                window.testRunner.waitUntilDone();
+
+            function change() {
+                var target = document.getElementById(&quot;target&quot;);
+                target.className = &quot;stacking-context&quot;;
+
+                if (window.testRunner)
+                    window.testRunner.notifyDone();
+            }
+
+            window.setTimeout(&quot;change()&quot;, 10);
+        &lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodebackgroundexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-background-expected.txt (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-background-expected.txt        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-background-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> layer at (0,0) size 800x600
</span><span class="cx">   RenderView at (0,0) size 800x600
</span><del>-layer at (0,0) size 800x100
</del><ins>+layer at (0,0) size 800x100 isolatesBlending
</ins><span class="cx">   RenderBlock {HTML} at (0,0) size 800x100
</span><span class="cx">     RenderBody {BODY} at (8,20) size 784x60 [bgcolor=#0000FF]
</span><span class="cx"> layer at (28,20) size 60x60 blendMode: difference
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolatedgroup1expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-1-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -7,15 +7,15 @@
</span><span class="cx">   RenderBlock (floating) {DIV} at (20,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (48,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><del>-layer at (128,28) size 60x60
</del><ins>+layer at (128,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) {DIV} at (120,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (148,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><del>-layer at (228,28) size 60x60
</del><ins>+layer at (228,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) {DIV} at (220,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (248,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><del>-layer at (328,28) size 60x60
</del><ins>+layer at (328,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) {DIV} at (320,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (348,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolatedgroup2expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-2-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -7,15 +7,15 @@
</span><span class="cx">   RenderBlock (floating) {DIV} at (20,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (48,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><del>-layer at (128,28) size 60x60
</del><ins>+layer at (128,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) {DIV} at (120,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (148,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><del>-layer at (228,28) size 60x60
</del><ins>+layer at (228,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) {DIV} at (220,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (248,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><del>-layer at (328,28) size 60x60
</del><ins>+layer at (328,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) {DIV} at (320,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (348,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolatedgroup3expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolated-group-3-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -7,19 +7,19 @@
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><span class="cx"> layer at (68,68) size 60x60
</span><span class="cx">   RenderBlock (positioned) {DIV} at (40,40) size 60x60 [bgcolor=#FFA500]
</span><del>-layer at (128,28) size 60x60
</del><ins>+layer at (128,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) zI: -1 {DIV} at (120,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (148,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><span class="cx"> layer at (168,68) size 60x60
</span><span class="cx">   RenderBlock (positioned) {DIV} at (40,40) size 60x60 [bgcolor=#FFA500]
</span><del>-layer at (228,28) size 60x60
</del><ins>+layer at (228,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) zI: -1 {DIV} at (220,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (248,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><span class="cx"> layer at (268,68) size 60x60
</span><span class="cx">   RenderBlock (positioned) {DIV} at (20,20) size 60x60 [bgcolor=#FFA500]
</span><del>-layer at (328,28) size 60x60
</del><ins>+layer at (328,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) zI: -1 {DIV} at (320,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (348,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><span class="lines">@@ -31,19 +31,19 @@
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><span class="cx"> layer at (468,68) size 60x60
</span><span class="cx">   RenderBlock (positioned) {DIV} at (40,40) size 60x60 [bgcolor=#FFA500]
</span><del>-layer at (528,28) size 60x60
</del><ins>+layer at (528,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) zI: -1 {DIV} at (520,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (548,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><span class="cx"> layer at (568,68) size 60x60
</span><span class="cx">   RenderBlock (positioned) {DIV} at (40,40) size 60x60 [bgcolor=#FFA500]
</span><del>-layer at (628,28) size 60x60
</del><ins>+layer at (628,28) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) zI: -1 {DIV} at (620,20) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (648,48) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span><span class="cx"> layer at (668,68) size 60x60
</span><span class="cx">   RenderBlock (positioned) {DIV} at (20,20) size 60x60 [bgcolor=#FFA500]
</span><del>-layer at (28,128) size 60x60
</del><ins>+layer at (28,128) size 60x60 isolatesBlending
</ins><span class="cx">   RenderBlock (floating) zI: -1 {DIV} at (20,120) size 60x60 [bgcolor=#EE82EE]
</span><span class="cx"> layer at (48,148) size 60x60 blendMode: multiply
</span><span class="cx">   RenderBlock {DIV} at (20,20) size 60x60 [bgcolor=#008000]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsappendnonstackingcontextblendingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x116
+  RenderBlock {HTML} at (0,0) size 800x116
+    RenderBody {BODY} at (8,8) size 784x100
+layer at (8,8) size 100x100 isolatesBlending
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#00FF00]
+layer at (58,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF00]
+layer at (58,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF44]
+layer at (33,8) size 100x100 blendMode: difference
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FF00FF]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsappendstackingcontextblendingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x116
+  RenderBlock {HTML} at (0,0) size 800x116
+    RenderBody {BODY} at (8,8) size 784x100
+layer at (8,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#00FF00]
+layer at (58,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF00]
+layer at (58,8) size 100x100 isolatesBlending
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF44]
+layer at (33,8) size 100x100 blendMode: difference
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FF00FF]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsremovenonstackingcontextblendingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x116
+  RenderBlock {HTML} at (0,0) size 800x116
+    RenderBody {BODY} at (8,8) size 784x100
+layer at (8,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#00FF00]
+layer at (58,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF00]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsremovestackingcontextblendingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x116
+  RenderBlock {HTML} at (0,0) size 800x116
+    RenderBody {BODY} at (8,8) size 784x100
+layer at (8,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#00FF00]
+layer at (58,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF00]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsturnoffblendingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-expected.txt (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x116
+  RenderBlock {HTML} at (0,0) size 800x116
+    RenderBody {BODY} at (8,8) size 784x100
+layer at (8,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#00FF00]
+layer at (58,8) size 100x100 isolatesBlending
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF00]
+layer at (58,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100
+layer at (33,8) size 100x100 blendMode: difference
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FF00FF]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsturnoffblendingnoisolationexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x116
+  RenderBlock {HTML} at (0,0) size 800x116
+    RenderBody {BODY} at (8,8) size 784x100
+layer at (8,58) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#00FF00]
+layer at (58,58) size 100x100 isolatesBlending
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF00]
+layer at (58,58) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100
+layer at (33,8) size 100x100 blendMode: difference
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FF00FF]
+layer at (58,158) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,100) size 100x100
+layer at (33,108) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FF00FF]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsturnoffstackingcontextexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x116
+  RenderBlock {HTML} at (0,0) size 800x116
+    RenderBody {BODY} at (8,8) size 784x100
+layer at (8,8) size 100x100 isolatesBlending
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#00FF00]
+layer at (58,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF00]
+layer at (58,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100
+layer at (33,8) size 100x100 blendMode: difference
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FF00FF]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsturnonblendingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-blending-expected.txt (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-blending-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-blending-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x116
+  RenderBlock {HTML} at (0,0) size 800x116
+    RenderBody {BODY} at (8,8) size 784x100
+layer at (8,8) size 100x100 isolatesBlending
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#00FF00]
+layer at (58,8) size 100x100 isolatesBlending blendMode: difference
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF00]
+layer at (58,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100
+layer at (33,8) size 100x100 blendMode: difference
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FF00FF]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodeisolationflagsturnonstackingcontextexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt (0 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x116
+  RenderBlock {HTML} at (0,0) size 800x116
+    RenderBody {BODY} at (8,8) size 784x100
+layer at (8,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#00FF00]
+layer at (58,8) size 100x100 isolatesBlending
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FFFF00]
+layer at (58,8) size 100x100
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100
+layer at (33,8) size 100x100 blendMode: difference
+  RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#FF00FF]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodelayersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-layers-expected.txt (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-layers-expected.txt        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-layers-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> layer at (0,0) size 800x600
</span><span class="cx">   RenderView at (0,0) size 800x600
</span><del>-layer at (0,0) size 800x366
</del><ins>+layer at (0,0) size 800x366 isolatesBlending
</ins><span class="cx">   RenderBlock {HTML} at (0,0) size 800x366
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x0
</span><span class="cx">       RenderBlock {UL} at (0,0) size 784x0
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx">   RenderBlock (relative positioned) {DIV} at (0,0) size 160x160
</span><span class="cx"> layer at (53,216) size 80x150
</span><span class="cx">   RenderBlock (relative positioned) {DIV} at (0,0) size 80x150 [bgcolor=#FFFF00]
</span><del>-layer at (223,246) size 160x75
</del><ins>+layer at (223,246) size 160x75 isolatesBlending
</ins><span class="cx">   RenderBlock {DIV} at (0,50) size 160x75 [bgcolor=#00FFFF]
</span><span class="cx"> layer at (243,206) size 160x160 blendMode: multiply
</span><span class="cx">   RenderBlock (relative positioned) {DIV} at (0,0) size 160x160
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodereflectionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-reflection-expected.txt (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-reflection-expected.txt        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-reflection-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> layer at (0,0) size 800x600
</span><span class="cx">   RenderView at (0,0) size 800x600
</span><del>-layer at (0,0) size 800x286
</del><ins>+layer at (0,0) size 800x286 isolatesBlending
</ins><span class="cx">   RenderBlock {HTML} at (0,0) size 800x286
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x0
</span><span class="cx">       RenderBlock {UL} at (0,0) size 784x0
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodesimplecompositedexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-simple-composited-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> layer at (0,0) size 800x600
</span><span class="cx">   RenderView at (0,0) size 800x600
</span><del>-layer at (0,0) size 800x576
</del><ins>+layer at (0,0) size 800x576 isolatesBlending
</ins><span class="cx">   RenderBlock {HTML} at (0,0) size 800x576
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x0
</span><span class="cx">       RenderBlock {UL} at (0,0) size 784x0
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmaccss3compositingblendmodesimpleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-simple-expected.txt (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-simple-expected.txt        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/LayoutTests/platform/mac/css3/compositing/blend-mode-simple-expected.txt        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> layer at (0,0) size 800x600
</span><span class="cx">   RenderView at (0,0) size 800x600
</span><del>-layer at (0,0) size 800x576
</del><ins>+layer at (0,0) size 800x576 isolatesBlending
</ins><span class="cx">   RenderBlock {HTML} at (0,0) size 800x576
</span><span class="cx">     RenderBody {BODY} at (8,16) size 784x0
</span><span class="cx">       RenderBlock {UL} at (0,0) size 784x0
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/Source/WebCore/ChangeLog        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -1,3 +1,59 @@
</span><ins>+2014-04-17  Ion Rosca  &lt;rosca@adobe.com&gt;
+
+        [CSS Blending] Isolation descendant dependent flags are not updated correctly
+        https://bugs.webkit.org/show_bug.cgi?id=130892
+
+        Reviewed by Dean Jackson.
+
+        The isolation descendant dependent flag (m_hasUnisolatedBlendingDescendants)
+        will help us to determine if a layer should isolate blending descendants or not.
+        The m_hasUnisolatedBlendingDescendants flag should be set for layers that have blending descendant layers
+        not isolated by descendant stacking contexts.
+        An element isolatesBlending() if it has this flag set and creates stacking context.
+
+        Tests: css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html
+               css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html
+               css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html
+               css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html
+               css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html
+               css3/compositing/blend-mode-isolation-flags-turn-off-blending.html
+               css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html
+               css3/compositing/blend-mode-isolation-flags-turn-on-blending.html
+               css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::RenderLayer):
+        (WebCore::RenderLayer::updateBlendMode):
+        (WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
+            When a layer has blending and it hasn't had it before, we set the isolation
+        flag for all its ancestors up to the first layer creating stacking context.
+        I removed the isComposited() check here. Isolation flags should be correct regardless
+        of compositing state. Moreover, if this method is called from styleChanged(),
+        the compositing state might not be accurate, it's going to be recalculated afterwards.  
+        (WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):
+            When a layer doesn't have blending, but it used to have it before, we mark
+        the isolation flag as dirty for all its ancestors up to the first layer
+        creating stacking context. The isolation flags will be recalculated by
+        RenderLayer::updateDescendantDependentFlags.
+        (WebCore::RenderLayer::updateDescendantDependentFlags):
+            Evaluates if the layer has unisolated blending descendants by traversing
+        the layer subtree.
+        (WebCore::RenderLayer::addChild):
+            When adding a subtree that has blending or has some unisolated descendants,
+        we set the flag for all the ancestors, up to the stacking context layer.
+        (WebCore::RenderLayer::removeChild):
+            When removing a subtree that had blending or had some unisolated descendants,
+        we dirty the flag so that it could be reevaluated.
+        (WebCore::RenderLayer::calculateClipRects):
+        (WebCore::RenderLayer::updateTransform):
+        * rendering/RenderLayer.h:
+            Rename m_hasBlendedElementInChildStackingContext =&gt; m_hasUnisolatedBlendingDescendants
+        and m_hasBlendedElementInChildStackingContextStatusDirty =&gt; m_hasUnisolatedBlendingDescendantsStatusDirty,
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+            Add an assert to make sure that if m_hasUnisolatedCompositedBlendingDescendants is true,
+        then m_hasUnisolatedBlendingDescendants is true as well.
+
</ins><span class="cx"> 2014-04-17  Tim Horton  &lt;timothy_horton@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Uninline blend(Color, Color) to get AnimationUtilities out of Color.h
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -187,8 +187,8 @@
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><span class="cx">     , m_blendMode(BlendModeNormal)
</span><span class="cx">     , m_hasUnisolatedCompositedBlendingDescendants(false)
</span><del>-    , m_hasBlendedElementInChildStackingContext(false)
-    , m_hasBlendedElementInChildStackingContextStatusDirty(false)
</del><ins>+    , m_hasUnisolatedBlendingDescendants(false)
+    , m_hasUnisolatedBlendingDescendantsStatusDirty(false)
</ins><span class="cx"> #endif
</span><span class="cx">     , m_renderer(rendererLayerModelObject)
</span><span class="cx">     , m_parent(0)
</span><span class="lines">@@ -808,11 +808,11 @@
</span><span class="cx"> void RenderLayer::updateBlendMode()
</span><span class="cx"> {
</span><span class="cx">     bool hadBlendMode = m_blendMode != BlendModeNormal;
</span><del>-    if (hadBlendMode != hasBlendMode()) {
</del><ins>+    if (parent() &amp;&amp; hadBlendMode != hasBlendMode()) {
</ins><span class="cx">         if (hasBlendMode())
</span><del>-            updateNonCompositedParentStackingContextHasBlendedChild(true);
</del><ins>+            parent()-&gt;updateAncestorChainHasBlendingDescendants();
</ins><span class="cx">         else
</span><del>-            dirtyAncestorParentStackingContextHasBlendedElement();
</del><ins>+            parent()-&gt;dirtyAncestorChainHasBlendingDescendants();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     BlendMode newBlendMode = renderer().style().blendMode();
</span><span class="lines">@@ -820,39 +820,31 @@
</span><span class="cx">         m_blendMode = newBlendMode;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderLayer::updateNonCompositedParentStackingContextHasBlendedChild(bool hasBlendedChild)
</del><ins>+void RenderLayer::updateAncestorChainHasBlendingDescendants()
</ins><span class="cx"> {
</span><del>-    if (isComposited())
-        return;
</del><ins>+    for (auto layer = this; layer; layer = layer-&gt;parent()) {
+        if (!layer-&gt;hasUnisolatedBlendingDescendantsStatusDirty() &amp;&amp; layer-&gt;hasUnisolatedBlendingDescendants())
+            break;
+        layer-&gt;m_hasUnisolatedBlendingDescendants = true;
+        layer-&gt;m_hasUnisolatedBlendingDescendantsStatusDirty = false;
</ins><span class="cx"> 
</span><del>-    for (auto ancestor = parent(); ancestor &amp;&amp; !ancestor-&gt;isComposited() &amp;&amp; !ancestor-&gt;renderer().isRoot(); ancestor = ancestor-&gt;parent()) {
-        ancestor-&gt;m_hasBlendedElementInChildStackingContext = hasBlendedChild;
-
-        if (ancestor-&gt;isStackingContext())
</del><ins>+        if (layer-&gt;isStackingContext())
</ins><span class="cx">             break;
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderLayer::dirtyAncestorParentStackingContextHasBlendedElement()
</del><ins>+void RenderLayer::dirtyAncestorChainHasBlendingDescendants()
</ins><span class="cx"> {
</span><del>-    for (auto layer = this; layer &amp;&amp; !layer-&gt;isComposited() &amp;&amp; !layer-&gt;m_hasBlendedElementInChildStackingContextStatusDirty; layer = layer-&gt;parent()) {
-        layer-&gt;m_hasBlendedElementInChildStackingContextStatusDirty = true;
</del><ins>+    for (auto layer = this; layer; layer = layer-&gt;parent()) {
+        if (layer-&gt;hasUnisolatedBlendingDescendantsStatusDirty())
+            break;
+        
+        layer-&gt;m_hasUnisolatedBlendingDescendantsStatusDirty = true;
</ins><span class="cx"> 
</span><span class="cx">         if (layer-&gt;isStackingContext())
</span><span class="cx">             break;
</span><span class="cx">     }
</span><span class="cx"> }
</span><del>-
-bool RenderLayer::nonCompositedParentStackingContextHasBlendedChild() const
-{
-    for (auto ancestor = parent(); ancestor &amp;&amp; !ancestor-&gt;isComposited() &amp;&amp; !ancestor-&gt;renderer().isRoot(); ancestor = ancestor-&gt;parent()) {
-        if (ancestor-&gt;isStackingContext())
-            return ancestor-&gt;hasBlendedElementInChildStackingContext();
-    }
-
-    return false;
-}
-
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void RenderLayer::updateTransform()
</span><span class="lines">@@ -1097,11 +1089,13 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderLayer::updateDescendantDependentFlags(HashSet&lt;const RenderObject*&gt;* outOfFlowDescendantContainingBlocks)
</span><span class="cx"> {
</span><del>-    if (m_visibleDescendantStatusDirty || m_hasSelfPaintingLayerDescendantDirty || m_hasOutOfFlowPositionedDescendantDirty || hasBlendedElementInChildStackingContextStatusDirty()) {
</del><ins>+    if (m_visibleDescendantStatusDirty || m_hasSelfPaintingLayerDescendantDirty || m_hasOutOfFlowPositionedDescendantDirty || hasUnisolatedBlendingDescendantsStatusDirty()) {
</ins><span class="cx">         m_hasVisibleDescendant = false;
</span><span class="cx">         m_hasSelfPaintingLayerDescendant = false;
</span><span class="cx">         m_hasOutOfFlowPositionedDescendant = false;
</span><del>-        setHasBlendedElementInChildStackingContext(false);
</del><ins>+#if ENABLE(CSS_COMPOSITING)
+        m_hasUnisolatedBlendingDescendants = false;
+#endif
</ins><span class="cx"> 
</span><span class="cx">         HashSet&lt;const RenderObject*&gt; childOutOfFlowDescendantContainingBlocks;
</span><span class="cx">         for (RenderLayer* child = firstChild(); child; child = child-&gt;nextSibling()) {
</span><span class="lines">@@ -1121,14 +1115,20 @@
</span><span class="cx">             bool hasVisibleDescendant = child-&gt;m_hasVisibleContent || child-&gt;m_hasVisibleDescendant;
</span><span class="cx">             bool hasSelfPaintingLayerDescendant = child-&gt;isSelfPaintingLayer() || child-&gt;hasSelfPaintingLayerDescendant();
</span><span class="cx">             bool hasOutOfFlowPositionedDescendant = !childOutOfFlowDescendantContainingBlocks.isEmpty();
</span><del>-            bool hasBlendedElementInChildStackingContext = child-&gt;hasBlendMode() || child-&gt;hasBlendedElementInChildStackingContext();
</del><ins>+#if ENABLE(CSS_COMPOSITING)
+            bool hasUnisolatedBlendingDescendants = child-&gt;hasBlendMode() || (child-&gt;hasUnisolatedBlendingDescendants() &amp;&amp; !child-&gt;isolatesBlending());
</ins><span class="cx"> 
</span><ins>+            m_hasUnisolatedBlendingDescendants |= hasUnisolatedBlendingDescendants;
+#endif
</ins><span class="cx">             m_hasVisibleDescendant |= hasVisibleDescendant;
</span><span class="cx">             m_hasSelfPaintingLayerDescendant |= hasSelfPaintingLayerDescendant;
</span><span class="cx">             m_hasOutOfFlowPositionedDescendant |= hasOutOfFlowPositionedDescendant;
</span><del>-            setHasBlendedElementInChildStackingContext(this-&gt;hasBlendedElementInChildStackingContext() | hasBlendedElementInChildStackingContext);
</del><span class="cx"> 
</span><del>-            if (m_hasVisibleDescendant &amp;&amp; m_hasSelfPaintingLayerDescendant &amp;&amp; m_hasOutOfFlowPositionedDescendant &amp;&amp; this-&gt;hasBlendedElementInChildStackingContext())
</del><ins>+            bool allFlagsSet = m_hasVisibleDescendant &amp;&amp; m_hasSelfPaintingLayerDescendant &amp;&amp; m_hasOutOfFlowPositionedDescendant;
+#if ENABLE(CSS_COMPOSITING)
+            allFlagsSet &amp;= m_hasUnisolatedBlendingDescendants;
+#endif
+            if (allFlagsSet)
</ins><span class="cx">                 break;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -1142,8 +1142,9 @@
</span><span class="cx">             updateNeedsCompositedScrolling();
</span><span class="cx"> 
</span><span class="cx">         m_hasOutOfFlowPositionedDescendantDirty = false;
</span><del>-
-        setHasBlendedElementInChildStackingContextStatusDirty(false);
</del><ins>+#if ENABLE(CSS_COMPOSITING)
+        m_hasUnisolatedBlendingDescendantsStatusDirty = false;
+#endif
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (m_visibleContentStatusDirty) {
</span><span class="lines">@@ -1800,8 +1801,8 @@
</span><span class="cx">         setAncestorChainHasOutOfFlowPositionedDescendant(child-&gt;renderer().containingBlock());
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-    if (child-&gt;hasBlendMode() || (!child-&gt;isStackingContext() &amp;&amp; child-&gt;hasBlendedElementInChildStackingContext()))
-        child-&gt;updateNonCompositedParentStackingContextHasBlendedChild(true);
</del><ins>+    if (child-&gt;hasBlendMode() || (child-&gt;hasUnisolatedBlendingDescendants() &amp;&amp; !child-&gt;isolatesBlending()))
+        updateAncestorChainHasBlendingDescendants();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     compositor().layerWasAdded(*this, *child);
</span><span class="lines">@@ -1847,8 +1848,8 @@
</span><span class="cx">         dirtyAncestorChainHasSelfPaintingLayerDescendantStatus();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-    if (oldChild-&gt;hasBlendMode() || oldChild-&gt;isolatesBlending())
-        dirtyAncestorParentStackingContextHasBlendedElement();
</del><ins>+    if (oldChild-&gt;hasBlendMode() || (oldChild-&gt;hasUnisolatedBlendingDescendants() &amp;&amp; !oldChild-&gt;isolatesBlending()))
+        dirtyAncestorChainHasBlendingDescendants();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     return oldChild;
</span><span class="lines">@@ -6429,8 +6430,17 @@
</span><span class="cx">             clearZOrderLists();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-            m_hasBlendedElementInChildStackingContext = isStackingContext ? nonCompositedParentStackingContextHasBlendedChild() : false;
-            dirtyAncestorParentStackingContextHasBlendedElement();
</del><ins>+        if (parent()) {
+            if (isStackingContext) {
+                if (!hasUnisolatedBlendingDescendantsStatusDirty() &amp;&amp; hasUnisolatedBlendingDescendants())
+                    parent()-&gt;dirtyAncestorChainHasBlendingDescendants();
+            } else {
+                if (hasUnisolatedBlendingDescendantsStatusDirty())
+                    parent()-&gt;dirtyAncestorChainHasBlendingDescendants();
+                else if (hasUnisolatedBlendingDescendants())
+                    parent()-&gt;updateAncestorChainHasBlendingDescendants();
+            }
+        }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.h (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.h        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/Source/WebCore/rendering/RenderLayer.h        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -777,81 +777,31 @@
</span><span class="cx">     bool hasFilter() const { return false; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    bool hasBlendMode() const
-    {
</del><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-        return renderer().hasBlendMode();
-#else
-        return false;
-#endif
-    }
-
-#if ENABLE(CSS_COMPOSITING)
</del><ins>+    bool hasBlendMode() const { return renderer().hasBlendMode(); }
</ins><span class="cx">     BlendMode blendMode() const { return m_blendMode; }
</span><del>-#endif
</del><span class="cx"> 
</span><del>-    bool isolatesCompositedBlending() const
-    {
-#if ENABLE(CSS_COMPOSITING)
-        return m_hasUnisolatedCompositedBlendingDescendants &amp;&amp; isStackingContext();
-#else
-        return false;
-#endif
-    }
-
-#if ENABLE(CSS_COMPOSITING)
</del><ins>+    bool isolatesCompositedBlending() const { return m_hasUnisolatedCompositedBlendingDescendants &amp;&amp; isStackingContext(); }
</ins><span class="cx">     bool hasUnisolatedCompositedBlendingDescendants() const { return m_hasUnisolatedCompositedBlendingDescendants; }
</span><span class="cx">     void setHasUnisolatedCompositedBlendingDescendants(bool hasUnisolatedCompositedBlendingDescendants)
</span><span class="cx">     {
</span><span class="cx">         m_hasUnisolatedCompositedBlendingDescendants = hasUnisolatedCompositedBlendingDescendants;
</span><span class="cx">     }
</span><del>-#endif
</del><span class="cx"> 
</span><del>-    bool isolatesBlending() const
</del><ins>+    bool isolatesBlending() const { return hasUnisolatedBlendingDescendants() &amp;&amp; isStackingContext(); }
+    bool hasUnisolatedBlendingDescendants() const
</ins><span class="cx">     {
</span><del>-#if ENABLE(CSS_COMPOSITING)
-        return m_hasBlendedElementInChildStackingContext &amp;&amp; isStackingContext();
-#else
-        return false;
-#endif
</del><ins>+        ASSERT(!m_hasUnisolatedBlendingDescendantsStatusDirty);
+        return m_hasUnisolatedBlendingDescendants;
</ins><span class="cx">     }
</span><del>-
-    bool hasBlendedElementInChildStackingContext() const
-    {
-#if ENABLE(CSS_COMPOSITING)
-        return m_hasBlendedElementInChildStackingContext;
</del><ins>+    bool hasUnisolatedBlendingDescendantsStatusDirty() const { return m_hasUnisolatedBlendingDescendantsStatusDirty; }
</ins><span class="cx"> #else
</span><del>-        return false;
</del><ins>+    bool hasBlendMode() const { return false; }
+    bool isolatesCompositedBlending() const { return false; }
+    bool isolatesBlending() const { return false; }
+    bool hasUnisolatedBlendingDescendantsStatusDirty() const { return false; }
</ins><span class="cx"> #endif
</span><del>-    }
</del><span class="cx"> 
</span><del>-    void setHasBlendedElementInChildStackingContext(bool hasBlendedElementInChildStackingContext)
-    {
-#if ENABLE(CSS_COMPOSITING)
-        m_hasBlendedElementInChildStackingContext = hasBlendedElementInChildStackingContext;
-#else
-        UNUSED_PARAM(hasBlendedElementInChildStackingContext);
-#endif
-    }
-
-    bool hasBlendedElementInChildStackingContextStatusDirty() const
-    {
-#if ENABLE(CSS_COMPOSITING)
-        return m_hasBlendedElementInChildStackingContextStatusDirty;
-#else
-        return false;
-#endif
-    }
-
-    void setHasBlendedElementInChildStackingContextStatusDirty(bool hasBlendedElementInChildStackingContextStatusDirty)
-    {
-#if ENABLE(CSS_COMPOSITING)
-        m_hasBlendedElementInChildStackingContextStatusDirty = hasBlendedElementInChildStackingContextStatusDirty;
-#else
-        UNUSED_PARAM(hasBlendedElementInChildStackingContextStatusDirty);
-#endif
-    }
-
</del><span class="cx">     bool isComposited() const { return m_backing != 0; }
</span><span class="cx">     bool hasCompositingDescendant() const { return m_hasCompositingDescendant; }
</span><span class="cx">     bool hasCompositedMask() const;
</span><span class="lines">@@ -1166,9 +1116,8 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><del>-    void updateNonCompositedParentStackingContextHasBlendedChild(bool hasBlendedChild);
-    void dirtyAncestorParentStackingContextHasBlendedElement();
-    bool nonCompositedParentStackingContextHasBlendedChild() const;
</del><ins>+    void updateAncestorChainHasBlendingDescendants();
+    void dirtyAncestorChainHasBlendingDescendants();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void parentClipRects(const ClipRectsContext&amp;, ClipRects&amp;) const;
</span><span class="lines">@@ -1310,8 +1259,8 @@
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><span class="cx">     BlendMode m_blendMode : 5;
</span><span class="cx">     bool m_hasUnisolatedCompositedBlendingDescendants : 1;
</span><del>-    bool m_hasBlendedElementInChildStackingContext : 1;
-    bool m_hasBlendedElementInChildStackingContextStatusDirty : 1;
</del><ins>+    bool m_hasUnisolatedBlendingDescendants : 1;
+    bool m_hasUnisolatedBlendingDescendantsStatusDirty : 1;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     RenderLayerModelObject&amp; m_renderer;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerCompositorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (167423 => 167424)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2014-04-17 07:33:23 UTC (rev 167423)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2014-04-17 08:42:53 UTC (rev 167424)
</span><span class="lines">@@ -1251,6 +1251,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_COMPOSITING)
</span><span class="cx">     layer.setHasUnisolatedCompositedBlendingDescendants(childState.m_hasUnisolatedCompositedBlendingDescendants);
</span><ins>+    ASSERT(!layer.hasUnisolatedCompositedBlendingDescendants() || layer.hasUnisolatedBlendingDescendants());
</ins><span class="cx"> #endif
</span><span class="cx">     // Now check for reasons to become composited that depend on the state of descendant layers.
</span><span class="cx">     RenderLayer::IndirectCompositingReason indirectCompositingReason;
</span></span></pre>
</div>
</div>

</body>
</html>