| Index: third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBox.cpp b/third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| index 3df11c66b8083506f415e7e19e116f8394a40fe9..034e24fbc1c8844ef00bce79e066fd0a6faa7ab3 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp
|
| @@ -1474,7 +1474,7 @@ bool LayoutBox::intersectsVisibleViewport()
|
| LayoutView* layoutView = view();
|
| while (layoutView->frame()->ownerLayoutObject())
|
| layoutView = layoutView->frame()->ownerLayoutObject()->view();
|
| - mapToVisibleRectInAncestorSpace(layoutView, rect, nullptr);
|
| + mapToVisibleRectInAncestorSpace(layoutView, rect);
|
| return rect.intersects(LayoutRect(layoutView->frameView()->getScrollableArea()->visibleContentRectDouble()));
|
| }
|
|
|
| @@ -1675,7 +1675,7 @@ LayoutUnit LayoutBox::perpendicularContainingBlockLogicalHeight() const
|
| return cb->adjustContentBoxLogicalHeightForBoxSizing(LayoutUnit(logicalHeightLength.value()));
|
| }
|
|
|
| -void LayoutBox::mapLocalToAncestor(const LayoutBoxModelObject* ancestor, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed, const PaintInvalidationState* paintInvalidationState) const
|
| +void LayoutBox::mapLocalToAncestor(const LayoutBoxModelObject* ancestor, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
|
| {
|
| bool isFixedPos = style()->position() == FixedPosition;
|
| bool hasTransform = hasLayer() && layer()->transform();
|
| @@ -1686,7 +1686,7 @@ void LayoutBox::mapLocalToAncestor(const LayoutBoxModelObject* ancestor, Transfo
|
| else if (isFixedPos)
|
| mode |= IsFixed;
|
|
|
| - LayoutBoxModelObject::mapLocalToAncestor(ancestor, transformState, mode, wasFixed, paintInvalidationState);
|
| + LayoutBoxModelObject::mapLocalToAncestor(ancestor, transformState, mode, wasFixed);
|
| }
|
|
|
| void LayoutBox::mapAncestorToLocal(const LayoutBoxModelObject* ancestor, TransformState& transformState, MapCoordinatesFlags mode) const
|
| @@ -1915,7 +1915,7 @@ bool LayoutBox::hasForcedBreakAfter() const
|
| return isForcedFragmentainerBreakValue(breakAfter());
|
| }
|
|
|
| -LayoutRect LayoutBox::clippedOverflowRectForPaintInvalidation(const LayoutBoxModelObject* paintInvalidationContainer, const PaintInvalidationState* paintInvalidationState) const
|
| +LayoutRect LayoutBox::localOverflowRectForPaintInvalidation() const
|
| {
|
| if (style()->visibility() != VISIBLE) {
|
| PaintLayer* layer = enclosingLayer();
|
| @@ -1924,12 +1924,10 @@ LayoutRect LayoutBox::clippedOverflowRectForPaintInvalidation(const LayoutBoxMod
|
| return LayoutRect();
|
| }
|
|
|
| - LayoutRect r = visualOverflowRect();
|
| - mapToVisibleRectInAncestorSpace(paintInvalidationContainer, r, paintInvalidationState);
|
| - return r;
|
| + return visualOverflowRect();
|
| }
|
|
|
| -void LayoutBox::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ancestor, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState) const
|
| +void LayoutBox::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ancestor, LayoutRect& rect) const
|
| {
|
| // The rect we compute at each step is shifted by our x/y offset in the parent container's coordinate space.
|
| // Only when we cross a writing mode boundary will we have to possibly flipForWritingMode (to convert into a more appropriate
|
| @@ -1937,22 +1935,17 @@ void LayoutBox::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ance
|
| // properly even during layout, since the rect remains flipped all the way until the end.
|
| //
|
| // LayoutView::computeRectForPaintInvalidation then converts the rect to physical coordinates. We also convert to
|
| - // physical when we hit a paintInvalidationContainer boundary. Therefore the final rect returned is always in the
|
| - // physical coordinate space of the paintInvalidationContainer.
|
| + // physical when we hit the ancestor. Therefore the final rect returned is always in the
|
| + // physical coordinate space of the ancestor.
|
| const ComputedStyle& styleToUse = styleRef();
|
|
|
| EPosition position = styleToUse.position();
|
|
|
| // We need to inflate the paint invalidation rect before we use paintInvalidationState,
|
| // else we would forget to inflate it for the current layoutObject. FIXME: If these were
|
| - // included into the visual overflow for repaint, we wouldn't have this issue.
|
| + // included into the visual overflow for paint invalidation, we wouldn't have this issue.
|
| inflatePaintInvalidationRectForReflectionAndFilter(rect);
|
|
|
| - if (paintInvalidationState && paintInvalidationState->canMapToAncestor(ancestor) && position != FixedPosition) {
|
| - paintInvalidationState->mapObjectRectToAncestor(*this, ancestor, rect);
|
| - return;
|
| - }
|
| -
|
| if (ancestor == this) {
|
| if (ancestor->style()->isFlippedBlocksWritingMode())
|
| flipForWritingMode(rect);
|
| @@ -2011,9 +2004,9 @@ void LayoutBox::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ance
|
| }
|
|
|
| if (container->isLayoutView())
|
| - toLayoutView(container)->mapToVisibleRectInAncestorSpace(ancestor, rect, LayoutView::toViewportConstrainedPosition(position), nullptr);
|
| + toLayoutView(container)->mapToVisibleRectInAncestorSpace(ancestor, rect, LayoutView::toViewportConstrainedPosition(position));
|
| else
|
| - container->mapToVisibleRectInAncestorSpace(ancestor, rect, nullptr);
|
| + container->mapToVisibleRectInAncestorSpace(ancestor, rect);
|
| }
|
|
|
| void LayoutBox::inflatePaintInvalidationRectForReflectionAndFilter(LayoutRect& paintInvalidationRect) const
|
| @@ -4445,7 +4438,7 @@ LayoutObject* LayoutBox::splitAnonymousBoxesAroundChild(LayoutObject* beforeChil
|
| LayoutBox* parentBox = toLayoutBox(boxToSplit->parent());
|
| // We need to invalidate the |parentBox| before inserting the new node
|
| // so that the table paint invalidation logic knows the structure is dirty.
|
| - // See for example LayoutTableCell:clippedOverflowRectForPaintInvalidation.
|
| + // See for example LayoutTableCell:localOverflowRectForPaintInvalidation.
|
| markBoxForRelayoutAfterSplit(parentBox);
|
| parentBox->virtualChildren()->insertChildNode(parentBox, postBox, boxToSplit->nextSibling());
|
| boxToSplit->moveChildrenTo(postBox, beforeChild, 0, true);
|
|
|