Index: Source/core/rendering/compositing/CompositedLayerMapping.cpp |
diff --git a/Source/core/rendering/compositing/CompositedLayerMapping.cpp b/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
index 44b0f6fb922301d8b3acf8bb2b6c61acc5621f25..5ba89eb279529fe74c1b3b13936e2285461ec4ac 100644 |
--- a/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
+++ b/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
@@ -465,6 +465,8 @@ bool CompositedLayerMapping::updateGraphicsLayerConfiguration() |
if (m_owningLayer.needsCompositedScrolling()) |
needsDescendentsClippingLayer = false; |
+ // FIXME: this should not be computed dynamically, but passed down during the compositing update. |
+ // See http://crbug.com/351851 |
abarth-chromium
2014/03/21 15:49:51
Is this comments still accurate?
Ian Vollick
2014/03/21 18:23:28
Nope. Removed.
|
RenderLayer* scrollParent = m_owningLayer.scrollParent(); |
bool needsAncestorClip = compositor->clippedByAncestor(&m_owningLayer); |
if (scrollParent) { |
@@ -888,6 +890,9 @@ GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeom |
updateRenderingContext(); |
updateShouldFlattenTransform(); |
updateChildrenTransform(); |
+ // FIXME: this should not be computed dynamically, but passed down during the compositing update. |
+ // See http://crbug.com/351851 |
abarth-chromium
2014/03/21 15:49:51
ditto
Ian Vollick
2014/03/21 18:23:28
ditto
|
+ updateScrollParent(m_owningLayer.scrollParent()); |
registerScrollingLayers(); |
updateCompositingReasons(); |
@@ -1414,9 +1419,12 @@ static void updateScrollParentForGraphicsLayer(GraphicsLayer* layer, GraphicsLay |
void CompositedLayerMapping::updateScrollParent(RenderLayer* scrollParent) |
{ |
+ if (!scrollParent && m_squashedLayers.size()) |
+ scrollParent = m_squashedLayers[0].renderLayer->scrollParent(); |
if (ScrollingCoordinator* scrollingCoordinator = scrollingCoordinatorFromLayer(m_owningLayer)) { |
- GraphicsLayer* topmostLayer = localRootForOwningLayer(); |
+ GraphicsLayer* topmostLayer = childForSuperlayers(); |
+ updateScrollParentForGraphicsLayer(m_squashingContainmentLayer.get(), topmostLayer, scrollParent, scrollingCoordinator); |
updateScrollParentForGraphicsLayer(m_ancestorClippingLayer.get(), topmostLayer, scrollParent, scrollingCoordinator); |
updateScrollParentForGraphicsLayer(m_graphicsLayer.get(), topmostLayer, scrollParent, scrollingCoordinator); |
} |