Chromium Code Reviews| Index: Source/core/rendering/CompositedLayerMapping.cpp |
| diff --git a/Source/core/rendering/CompositedLayerMapping.cpp b/Source/core/rendering/CompositedLayerMapping.cpp |
| index e1e41cd4f92137e54b6eb5ffaf030b81b69590bd..21343769146fcc623a4b89492e1772c9a100271a 100644 |
| --- a/Source/core/rendering/CompositedLayerMapping.cpp |
| +++ b/Source/core/rendering/CompositedLayerMapping.cpp |
| @@ -217,6 +217,8 @@ void CompositedLayerMapping::createPrimaryGraphicsLayer() |
| if (RuntimeEnabledFeatures::cssCompositingEnabled()) |
| updateLayerBlendMode(renderer()->style()); |
| + if (RuntimeEnabledFeatures::cssCompositingEnabled()) |
|
enne (OOO)
2013/11/07 22:59:07
Put these under the same conditional.
rosca
2013/11/08 15:36:32
Done.
|
| + updateIsRootForIsolatedGroup(); |
| } |
| void CompositedLayerMapping::destroyGraphicsLayers() |
| @@ -273,8 +275,15 @@ void CompositedLayerMapping::updateFilters(const RenderStyle* style) |
| } |
| } |
| -void CompositedLayerMapping::updateLayerBlendMode(const RenderStyle*) |
| +void CompositedLayerMapping::updateLayerBlendMode(const RenderStyle* style) |
| +{ |
| + setBlendMode(style->blendMode()); |
| +} |
| + |
| +void CompositedLayerMapping::updateIsRootForIsolatedGroup() |
| { |
| + m_graphicsLayer->setIsRootForIsolatedGroup(m_owningLayer->hasCompositedBlendingDescendants() |
|
enne (OOO)
2013/11/07 22:59:07
Whoa there. If you have a tree of RenderLayers cr
rosca
2013/11/08 15:36:32
No. hasCompositedBlendingDescendants is true only
|
| + && m_owningLayer->stackingNode()->isStackingContext()); |
| } |
| void CompositedLayerMapping::updateContentsOpaque() |
| @@ -521,6 +530,8 @@ void CompositedLayerMapping::updateGraphicsLayerGeometry() |
| if (RuntimeEnabledFeatures::cssCompositingEnabled()) |
| updateLayerBlendMode(renderer()->style()); |
| + if (RuntimeEnabledFeatures::cssCompositingEnabled()) |
| + updateIsRootForIsolatedGroup(); |
| bool isSimpleContainer = isSimpleContainerCompositingLayer(); |
| @@ -1552,8 +1563,15 @@ void CompositedLayerMapping::setRequiresOwnBackingStore(bool requiresOwnBacking) |
| compositor()->repaintInCompositedAncestor(m_owningLayer, compositedBounds()); |
| } |
| -void CompositedLayerMapping::setBlendMode(BlendMode) |
| +void CompositedLayerMapping::setBlendMode(BlendMode blendMode) |
| { |
| + if (m_ancestorClippingLayer) { |
| + ASSERT(childForSuperlayers() == m_ancestorClippingLayer.get()); |
| + m_graphicsLayer->setBlendMode(BlendModeNormal); |
| + } else { |
| + ASSERT(childForSuperlayers() == m_graphicsLayer.get()); |
| + } |
| + childForSuperlayers()->setBlendMode(blendMode); |
| } |
| void CompositedLayerMapping::setContentsNeedDisplay() |