| Index: Source/core/rendering/RenderLayer.cpp
|
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp
|
| index c77bc4f9f1fb9cbfb35a6dc08191385f14678507..cb31a435db34f40e03311fe58c4e075aeb06e758 100644
|
| --- a/Source/core/rendering/RenderLayer.cpp
|
| +++ b/Source/core/rendering/RenderLayer.cpp
|
| @@ -440,24 +440,17 @@ bool RenderLayer::scrollsWithRespectTo(const RenderLayer* other) const
|
| void RenderLayer::updateLayerPositionsAfterDocumentScroll()
|
| {
|
| ASSERT(this == renderer()->view()->layer());
|
| -
|
| - RenderGeometryMap geometryMap(UseTransforms);
|
| - updateLayerPositionsAfterScroll(&geometryMap);
|
| + updateLayerPositionsAfterScroll();
|
| }
|
|
|
| void RenderLayer::updateLayerPositionsAfterOverflowScroll()
|
| {
|
| - RenderGeometryMap geometryMap(UseTransforms);
|
| - RenderView* view = renderer()->view();
|
| - if (this != view->layer())
|
| - geometryMap.pushMappingsToAncestor(parent(), 0);
|
| -
|
| // FIXME: why is it OK to not check the ancestors of this layer in order to
|
| // initialize the HasSeenViewportConstrainedAncestor and HasSeenAncestorWithOverflowClip flags?
|
| - updateLayerPositionsAfterScroll(&geometryMap, IsOverflowScroll);
|
| + updateLayerPositionsAfterScroll(IsOverflowScroll);
|
| }
|
|
|
| -void RenderLayer::updateLayerPositionsAfterScroll(RenderGeometryMap* geometryMap, UpdateLayerPositionsAfterScrollFlags flags)
|
| +void RenderLayer::updateLayerPositionsAfterScroll(UpdateLayerPositionsAfterScrollFlags flags)
|
| {
|
| // FIXME: This shouldn't be needed, but there are some corner cases where
|
| // these flags are still dirty. Update so that the check below is valid.
|
| @@ -469,13 +462,9 @@ void RenderLayer::updateLayerPositionsAfterScroll(RenderGeometryMap* geometryMap
|
| if (subtreeIsInvisible())
|
| return;
|
|
|
| - bool positionChanged = updateLayerPosition();
|
| - if (positionChanged)
|
| + if (updateLayerPosition())
|
| flags |= HasChangedAncestor;
|
|
|
| - if (geometryMap)
|
| - geometryMap->pushMappingsToAncestor(this, parent());
|
| -
|
| if ((flags & HasChangedAncestor) || (flags & HasSeenViewportConstrainedAncestor) || (flags & IsOverflowScroll))
|
| m_clipper.clearClipRects();
|
|
|
| @@ -495,14 +484,11 @@ void RenderLayer::updateLayerPositionsAfterScroll(RenderGeometryMap* geometryMap
|
| }
|
|
|
| for (RenderLayer* child = firstChild(); child; child = child->nextSibling())
|
| - child->updateLayerPositionsAfterScroll(geometryMap, flags);
|
| + child->updateLayerPositionsAfterScroll(flags);
|
|
|
| // We don't update our reflection as scrolling is a translation which does not change the size()
|
| // of an object, thus RenderReplica will still repaint itself properly as the layer position was
|
| // updated above.
|
| -
|
| - if (geometryMap)
|
| - geometryMap->popMappingsToAncestor(parent());
|
| }
|
|
|
| void RenderLayer::updateTransform()
|
|
|