Chromium Code Reviews| 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 f7fefe576aff17d0c7013f36525d5b7ed36552cc..a2441c65c93fe9c324e11a2e5a0d5704a2f0f173 100644 |
| --- a/third_party/WebKit/Source/core/layout/LayoutObject.cpp |
| +++ b/third_party/WebKit/Source/core/layout/LayoutObject.cpp |
| @@ -1638,28 +1638,25 @@ LayoutRect LayoutObject::clippedOverflowRectForPaintInvalidation(const LayoutBox |
| return LayoutRect(); |
| } |
| -void LayoutObject::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ancestor, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState) const |
| +bool LayoutObject::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ancestor, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState, VisibleRectFlags visibleRectFlags) const |
|
chrishtr
2016/03/24 21:18:43
"When this method is called, the coordinate space
szager1
2016/03/24 21:52:28
Done.
|
| { |
| if (ancestor == this) |
| - return; |
| + return true; |
| - if (paintInvalidationState && paintInvalidationState->canMapToAncestor(ancestor)) { |
| - paintInvalidationState->mapObjectRectToAncestor(*this, ancestor, rect); |
| - return; |
| - } |
| + if (paintInvalidationState && paintInvalidationState->canMapToAncestor(ancestor)) |
| + return paintInvalidationState->mapObjectRectToAncestor(*this, ancestor, rect, visibleRectFlags); |
| if (LayoutObject* parent = this->parent()) { |
| if (parent->hasOverflowClip()) { |
| LayoutBox* parentBox = toLayoutBox(parent); |
| parentBox->mapScrollingContentsRectToBoxSpace(rect); |
| - if (parent != ancestor) |
| - parentBox->applyOverflowClip(rect); |
| - if (rect.isEmpty()) |
| - return; |
| + if (parent != ancestor && !parentBox->applyOverflowClip(rect, visibleRectFlags)) |
| + return false; |
| } |
| - parent->mapToVisibleRectInAncestorSpace(ancestor, rect, nullptr); |
| + return parent->mapToVisibleRectInAncestorSpace(ancestor, rect, nullptr, visibleRectFlags); |
| } |
| + return true; |
| } |
| void LayoutObject::dirtyLinesFromChangedChild(LayoutObject*) |