| Index: third_party/WebKit/Source/core/layout/LayoutInline.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutInline.cpp b/third_party/WebKit/Source/core/layout/LayoutInline.cpp
|
| index 7ba75d8a781b2e2d97b46ee7965b49dc76bbe752..9186524c48a39deb844632d4c7c57fe6f9902ed5 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutInline.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutInline.cpp
|
| @@ -1021,8 +1021,11 @@ LayoutRect LayoutInline::linesVisualOverflowBoundingBox() const
|
|
|
| LayoutRect LayoutInline::absoluteClippedOverflowRect() const
|
| {
|
| - if (!continuation())
|
| - return clippedOverflowRect(view());
|
| + if (!continuation()) {
|
| + LayoutRect rect = visualOverflowRect();
|
| + mapToVisibleRectInAncestorSpace(view(), rect);
|
| + return rect;
|
| + }
|
|
|
| FloatRect floatResult;
|
| LinesBoundingBoxGeneratorContext context(floatResult);
|
| @@ -1033,34 +1036,24 @@ LayoutRect LayoutInline::absoluteClippedOverflowRect() const
|
|
|
| for (LayoutBlock* currBlock = containingBlock(); currBlock && currBlock->isAnonymousBlock(); currBlock = toLayoutBlock(currBlock->nextSibling())) {
|
| for (LayoutObject* curr = currBlock->firstChild(); curr; curr = curr->nextSibling()) {
|
| - LayoutRect rect(curr->clippedOverflowRectForPaintInvalidation(view()));
|
| + LayoutRect rect(curr->localOverflowRectForPaintInvalidation());
|
| context(FloatRect(rect));
|
| - if (curr == endContinuation)
|
| - return LayoutRect(enclosingIntRect(floatResult));
|
| + if (curr == endContinuation) {
|
| + LayoutRect rect(enclosingIntRect(floatResult));
|
| + mapToVisibleRectInAncestorSpace(view(), rect);
|
| + return rect;
|
| + }
|
| }
|
| }
|
| return LayoutRect();
|
| }
|
|
|
| -LayoutRect LayoutInline::clippedOverflowRectForPaintInvalidation(const LayoutBoxModelObject* paintInvalidationContainer, const PaintInvalidationState* paintInvalidationState) const
|
| +LayoutRect LayoutInline::localOverflowRectForPaintInvalidation() const
|
| {
|
| // If we don't create line boxes, we don't have any invalidations to do.
|
| if (!alwaysCreateLineBoxes())
|
| return LayoutRect();
|
| - return clippedOverflowRect(paintInvalidationContainer);
|
| -}
|
| -
|
| -LayoutRect LayoutInline::clippedOverflowRect(const LayoutBoxModelObject* paintInvalidationContainer, const PaintInvalidationState* paintInvalidationState) const
|
| -{
|
| - if (style()->visibility() != VISIBLE)
|
| - return LayoutRect();
|
| -
|
| - LayoutRect overflowRect(visualOverflowRect());
|
| - if (overflowRect.isEmpty())
|
| - return overflowRect;
|
| -
|
| - mapToVisibleRectInAncestorSpace(paintInvalidationContainer, overflowRect, paintInvalidationState);
|
| - return overflowRect;
|
| + return visualOverflowRect();
|
| }
|
|
|
| LayoutRect LayoutInline::visualOverflowRect() const
|
| @@ -1081,13 +1074,8 @@ LayoutRect LayoutInline::visualOverflowRect() const
|
| return overflowRect;
|
| }
|
|
|
| -void LayoutInline::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ancestor, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState) const
|
| +void LayoutInline::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ancestor, LayoutRect& rect) const
|
| {
|
| - if (paintInvalidationState && paintInvalidationState->canMapToAncestor(ancestor)) {
|
| - paintInvalidationState->mapObjectRectToAncestor(*this, ancestor, rect);
|
| - return;
|
| - }
|
| -
|
| if (ancestor == this)
|
| return;
|
|
|
| @@ -1125,7 +1113,7 @@ void LayoutInline::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* a
|
| return;
|
| }
|
|
|
| - container->mapToVisibleRectInAncestorSpace(ancestor, rect, paintInvalidationState);
|
| + container->mapToVisibleRectInAncestorSpace(ancestor, rect);
|
| }
|
|
|
| LayoutSize LayoutInline::offsetFromContainer(const LayoutObject* container) const
|
|
|