Index: Source/core/rendering/RenderLayerBacking.cpp |
diff --git a/Source/core/rendering/RenderLayerBacking.cpp b/Source/core/rendering/RenderLayerBacking.cpp |
index 7423b135b4a0d022eb141a62b2df1e6a896f805d..cc6e37f41b7035edffe8b10422f6de193915863c 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" |
#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); |
enne (OOO)
2013/05/21 20:19:28
What about just setting these reasons when you cre
|
+ |
+ if (m_contentsContainmentLayer) |
+ m_contentsContainmentLayer->setCompositingReasons(CompositingReasonNone); |
+ |
+ if (m_foregroundLayer) |
+ m_foregroundLayer->setCompositingReasons(CompositingReasonLayerForForeground); |
+ |
+ 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(CompositingReasonLayerForScrollingContainer); |
+} |
+ |
void RenderLayerBacking::updateAfterLayout(UpdateAfterLayoutFlags flags) |
{ |
RenderLayerCompositor* layerCompositor = compositor(); |
@@ -718,6 +758,8 @@ void RenderLayerBacking::updateGraphicsLayerGeometry() |
updateDrawsContent(isSimpleContainer); |
updateAfterWidgetResize(); |
registerScrollingLayers(); |
+ |
+ updateCompositingReasons(); |
} |
void RenderLayerBacking::registerScrollingLayers() |