Chromium Code Reviews| Index: Source/core/rendering/RenderLayerBacking.cpp |
| diff --git a/Source/core/rendering/RenderLayerBacking.cpp b/Source/core/rendering/RenderLayerBacking.cpp |
| index 7423b135b4a0d022eb141a62b2df1e6a896f805d..718b8b8480bac183fc9a54e0eb244a1eebf41044 100644 |
| --- a/Source/core/rendering/RenderLayerBacking.cpp |
| +++ b/Source/core/rendering/RenderLayerBacking.cpp |
| @@ -50,6 +50,7 @@ |
| #include "core/rendering/RenderEmbeddedObject.h" |
| #include "core/rendering/RenderIFrame.h" |
| #include "core/rendering/RenderImage.h" |
| +#include "core/rendering/RenderLayer.h" // FIXME - only needed for CompositingReasons, see if we can move that to a better home. |
|
jamesr
2013/05/17 00:10:20
RenderLayerBacking reaches into RenderLayers all o
|
| #include "core/rendering/RenderLayerCompositor.h" |
| #include "core/rendering/RenderVideo.h" |
| #include "core/rendering/RenderView.h" |
| @@ -346,6 +347,45 @@ void RenderLayerBacking::updateAfterWidgetResize() |
| } |
| } |
| +void RenderLayerBacking::updateCompositingReasons() |
| +{ |
| + m_graphicsLayer->setCompositingReasons(m_owningLayer->compositingReasons()); |
| + |
| + if (m_ancestorClippingLayer) |
| + m_ancestorClippingLayer->setCompositingReasons(CompositingReasonLayerForClip); |
| + |
| + if (m_contentsContainmentLayer) |
| + m_contentsContainmentLayer->setCompositingReasons(CompositingReasonNone); |
| + |
| + if (m_foregroundLayer) |
| + m_foregroundLayer->setCompositingReasons(CompositingReasonsLayerForForeground); |
| + |
| + if (m_backgroundLayer) |
| + m_backgroundLayer->setCompositingReasons(CompositingReasonNone); |
| + |
| + if (m_childContainmentLayer) |
| + m_childContainmentLayer->setCompositingReasons(CompositingReasonNone); |
| + |
| + if (m_maskLayer) |
| + m_maskLayer->setCompositingReasons(CompositingReasonNone); |
| + |
| + if (m_layerForHorizontalScrollbar) |
| + m_layerForHorizontalScrollbar->setCompositingReasons(CompositingReasonLayerForScrollbar); |
| + |
| + if (m_layerForVerticalScrollbar) |
| + m_layerForVerticalScrollbar->setCompositingReasons(CompositingReasonLayerForScrollbar); |
| + |
| + if (m_layerForScrollCorner) |
| + m_layerForScrollCorner->setCompositingReasons(CompositingReasonLayerForScrollbar); |
| + |
| + // Is this the correct reason? |
| + if (m_scrollingLayer) |
| + m_scrollingLayer->setCompositingReasons(CompositingReasonLayerForDescendantClip); |
| + |
| + if (m_scrollingContentsLayer) |
| + m_scrollingContentsLayer->setCompositingReasons(CompositingReasonsLayerForScrollingContainer); |
| +} |
| + |
| void RenderLayerBacking::updateAfterLayout(UpdateAfterLayoutFlags flags) |
| { |
| RenderLayerCompositor* layerCompositor = compositor(); |
| @@ -718,6 +758,8 @@ void RenderLayerBacking::updateGraphicsLayerGeometry() |
| updateDrawsContent(isSimpleContainer); |
| updateAfterWidgetResize(); |
| registerScrollingLayers(); |
| + |
| + updateCompositingReasons(); |
| } |
| void RenderLayerBacking::registerScrollingLayers() |