| Index: Source/core/rendering/compositing/CompositedLayerMapping.cpp
|
| diff --git a/Source/core/rendering/compositing/CompositedLayerMapping.cpp b/Source/core/rendering/compositing/CompositedLayerMapping.cpp
|
| index fcdf3a996d4f36100e1656bad5a6fc1413d103a9..f87dec876fbb6569295360bae854c089e076cd4f 100644
|
| --- a/Source/core/rendering/compositing/CompositedLayerMapping.cpp
|
| +++ b/Source/core/rendering/compositing/CompositedLayerMapping.cpp
|
| @@ -463,6 +463,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
|
| RenderLayer* scrollParent = m_owningLayer.scrollParent();
|
| bool needsAncestorClip = compositor->clippedByAncestor(&m_owningLayer);
|
| if (scrollParent) {
|
| @@ -870,6 +872,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
|
| + updateScrollParent(m_owningLayer.scrollParent());
|
| registerScrollingLayers();
|
|
|
| updateCompositingReasons();
|
| @@ -1396,9 +1401,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);
|
| }
|
|
|