| Index: third_party/WebKit/Source/core/layout/LayoutObject.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.cpp b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
|
| index 2d594fdfa77e4b66d9e4d8ae80838fae969316a6..dabd7069bd83106cc28cf36cb19105101051f3fb 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutObject.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
|
| @@ -1583,7 +1583,7 @@ LayoutRect LayoutObject::clippedOverflowRectForPaintInvalidation(const LayoutBox
|
| return LayoutRect();
|
| }
|
|
|
| -void LayoutObject::mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* paintInvalidationContainer, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState) const
|
| +void LayoutObject::mapToVisibleRectInContainerSpace(const LayoutBoxModelObject* paintInvalidationContainer, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState) const
|
| {
|
| if (paintInvalidationContainer == this)
|
| return;
|
| @@ -1596,14 +1596,17 @@ void LayoutObject::mapRectToPaintInvalidationBacking(const LayoutBoxModelObject*
|
| }
|
|
|
| if (LayoutObject* o = parent()) {
|
| - if (o->hasOverflowClip()) {
|
| + if (o != paintInvalidationContainer && o->hasOverflowClip()) {
|
| LayoutBox* boxParent = toLayoutBox(o);
|
| - boxParent->applyCachedClipAndScrollOffsetForPaintInvalidation(rect);
|
| + if (o == paintInvalidationContainer)
|
| + boxParent->applyCachedScrollOffsetForPaintInvalidation(rect);
|
| + else
|
| + boxParent->applyCachedClipAndScrollOffsetForPaintInvalidation(rect);
|
| if (rect.isEmpty())
|
| return;
|
| }
|
|
|
| - o->mapRectToPaintInvalidationBacking(paintInvalidationContainer, rect, paintInvalidationState);
|
| + o->mapToVisibleRectInContainerSpace(paintInvalidationContainer, rect, paintInvalidationState);
|
| }
|
| }
|
|
|
|
|