Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: third_party/WebKit/Source/core/layout/LayoutBox.cpp

Issue 1537133002: Renaming: distinguish ancestor, container and paintInvalidationContainer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@SelectionInvalidation
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 e7dde710055129368066dc36d0f2f12cd54851cf..4c35437d705b1c589625252eb6a1ae9139385f3b 100644
--- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp
@@ -938,7 +938,7 @@ IntSize LayoutBox::scrolledContentOffset() const
return flooredIntSize(layer()->scrollableArea()->scrollOffset());
}
-void LayoutBox::applyCachedScrollOffsetForPaintInvalidation(LayoutRect& paintRect) const
+void LayoutBox::mapScrollingContentsRectToBoxSpace(LayoutRect& rect) const
{
ASSERT(hasLayer());
ASSERT(hasOverflowClip());
@@ -950,23 +950,22 @@ void LayoutBox::applyCachedScrollOffsetForPaintInvalidation(LayoutRect& paintRec
else
offset.setWidth(-offset.width());
}
- paintRect.move(offset);
+ rect.move(offset);
}
-void LayoutBox::applyCachedClipAndScrollOffsetForPaintInvalidation(LayoutRect& paintRect) const
+void LayoutBox::applyOverflowClip(LayoutRect& rect) const
{
ASSERT(hasLayer());
ASSERT(hasOverflowClip());
- applyCachedScrollOffsetForPaintInvalidation(paintRect);
- flipForWritingMode(paintRect);
+ flipForWritingMode(rect);
// size() is inaccurate if we're in the middle of a layout of this LayoutBox, so use the
// layer's size instead. Even if the layer's size is wrong, the layer itself will issue paint invalidations
// anyway if its size does change.
LayoutRect clipRect(LayoutPoint(), LayoutSize(layer()->size()));
- paintRect = intersection(paintRect, clipRect);
- flipForWritingMode(paintRect);
+ rect = intersection(rect, clipRect);
+ flipForWritingMode(rect);
}
void LayoutBox::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
@@ -1453,7 +1452,7 @@ bool LayoutBox::intersectsVisibleViewport()
LayoutView* layoutView = view();
while (layoutView->frame()->ownerLayoutObject())
layoutView = layoutView->frame()->ownerLayoutObject()->view();
- mapToVisibleRectInContainerSpace(layoutView, rect, 0);
+ mapToVisibleRectInAncestorSpace(layoutView, rect, nullptr);
return rect.intersects(LayoutRect(layoutView->frameView()->scrollableArea()->visibleContentRectDouble()));
}
@@ -1641,12 +1640,12 @@ LayoutUnit LayoutBox::perpendicularContainingBlockLogicalHeight() const
return cb->adjustContentBoxLogicalHeightForBoxSizing(logicalHeightLength.value());
}
-void LayoutBox::mapLocalToContainer(const LayoutBoxModelObject* paintInvalidationContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed, const PaintInvalidationState* paintInvalidationState) const
+void LayoutBox::mapLocalToAncestor(const LayoutBoxModelObject* ancestor, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed, const PaintInvalidationState* paintInvalidationState) const
{
- if (paintInvalidationContainer == this)
+ if (ancestor == this)
return;
- if (paintInvalidationState && paintInvalidationState->canMapToContainer(paintInvalidationContainer)) {
+ if (paintInvalidationState && paintInvalidationState->canMapToContainer(ancestor)) {
LayoutSize offset = paintInvalidationState->paintOffset() + locationOffset();
if (style()->hasInFlowPosition() && layer())
offset += layer()->offsetForInFlowPosition();
@@ -1654,8 +1653,8 @@ void LayoutBox::mapLocalToContainer(const LayoutBoxModelObject* paintInvalidatio
return;
}
- bool containerSkipped;
- LayoutObject* o = container(paintInvalidationContainer, &containerSkipped);
+ bool ancestorSkipped;
+ LayoutObject* o = container(ancestor, &ancestorSkipped);
if (!o)
return;
@@ -1682,17 +1681,17 @@ void LayoutBox::mapLocalToContainer(const LayoutBoxModelObject* paintInvalidatio
transformState.move(containerOffset.width(), containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
}
- if (containerSkipped) {
+ if (ancestorSkipped) {
// There can't be a transform between paintInvalidationContainer and o, because transforms create containers, so it should be safe
// to just subtract the delta between the paintInvalidationContainer and o.
- LayoutSize containerOffset = paintInvalidationContainer->offsetFromAncestorContainer(o);
+ LayoutSize containerOffset = ancestor->offsetFromAncestorContainer(o);
transformState.move(-containerOffset.width(), -containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
return;
}
mode &= ~ApplyContainerFlip;
- o->mapLocalToContainer(paintInvalidationContainer, transformState, mode, wasFixed);
+ o->mapLocalToAncestor(ancestor, transformState, mode, wasFixed);
}
void LayoutBox::mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState& transformState) const
@@ -1883,11 +1882,11 @@ LayoutRect LayoutBox::clippedOverflowRectForPaintInvalidation(const LayoutBoxMod
}
LayoutRect r = visualOverflowRect();
- mapToVisibleRectInContainerSpace(paintInvalidationContainer, r, paintInvalidationState);
+ mapToVisibleRectInAncestorSpace(paintInvalidationContainer, r, paintInvalidationState);
return r;
}
-void LayoutBox::mapToVisibleRectInContainerSpace(const LayoutBoxModelObject* paintInvalidationContainer, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState) const
+void LayoutBox::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ancestor, LayoutRect& rect, const PaintInvalidationState* paintInvalidationState) 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
@@ -1906,7 +1905,7 @@ void LayoutBox::mapToVisibleRectInContainerSpace(const LayoutBoxModelObject* pai
// included into the visual overflow for repaint, we wouldn't have this issue.
inflatePaintInvalidationRectForReflectionAndFilter(rect);
- if (paintInvalidationState && paintInvalidationState->canMapToContainer(paintInvalidationContainer) && position != FixedPosition) {
+ if (paintInvalidationState && paintInvalidationState->canMapToContainer(ancestor) && position != FixedPosition) {
if (layer() && layer()->transform())
rect = LayoutRect(layer()->transform()->mapRect(pixelSnappedIntRect(rect)));
@@ -1921,15 +1920,15 @@ void LayoutBox::mapToVisibleRectInContainerSpace(const LayoutBoxModelObject* pai
return;
}
- if (paintInvalidationContainer == this) {
- if (paintInvalidationContainer->style()->isFlippedBlocksWritingMode())
+ if (ancestor == this) {
+ if (ancestor->style()->isFlippedBlocksWritingMode())
flipForWritingMode(rect);
return;
}
bool containerSkipped;
- LayoutObject* o = container(paintInvalidationContainer, &containerSkipped);
- if (!o)
+ LayoutObject* container = this->container(ancestor, &containerSkipped);
+ if (!container)
return;
if (isWritingModeRoot())
@@ -1946,8 +1945,8 @@ void LayoutBox::mapToVisibleRectInContainerSpace(const LayoutBoxModelObject* pai
topLeft.move(locationOffset());
}
- if (position == AbsolutePosition && o->isInFlowPositioned() && o->isLayoutInline()) {
- topLeft += toLayoutInline(o)->offsetForInFlowPositionedInline(*this);
+ if (position == AbsolutePosition && container->isInFlowPositioned() && container->isLayoutInline()) {
+ topLeft += toLayoutInline(container)->offsetForInFlowPositionedInline(*this);
} else if (styleToUse.hasInFlowPosition() && layer()) {
// Apply the relative position offset when invalidating a rectangle. The layer
// is translated, but the layout box isn't, so we need to do this to get the
@@ -1959,30 +1958,29 @@ void LayoutBox::mapToVisibleRectInContainerSpace(const LayoutBoxModelObject* pai
// FIXME: We ignore the lightweight clipping rect that controls use, since if |o| is in mid-layout,
// its controlClipRect will be wrong. For overflow clip we use the values cached by the layer.
rect.setLocation(topLeft);
- if (o->hasOverflowClip()) {
- LayoutBox* containerBox = toLayoutBox(o);
- if (o == paintInvalidationContainer)
- containerBox->applyCachedScrollOffsetForPaintInvalidation(rect);
- else
- containerBox->applyCachedClipAndScrollOffsetForPaintInvalidation(rect);
+ if (container->hasOverflowClip()) {
+ LayoutBox* containerBox = toLayoutBox(container);
+ containerBox->mapScrollingContentsRectToBoxSpace(rect);
+ if (container != ancestor)
+ containerBox->applyOverflowClip(rect);
if (rect.isEmpty())
return;
}
if (containerSkipped) {
// If the paintInvalidationContainer is below o, then we need to map the rect into paintInvalidationContainer's coordinates.
- LayoutSize containerOffset = paintInvalidationContainer->offsetFromAncestorContainer(o);
+ LayoutSize containerOffset = ancestor->offsetFromAncestorContainer(container);
rect.move(-containerOffset);
// If the paintInvalidationContainer is fixed, then the rect is already in its coordinates so doesn't need viewport-adjusting.
- if (paintInvalidationContainer->style()->position() != FixedPosition && o->isLayoutView())
- toLayoutView(o)->adjustViewportConstrainedOffset(rect, LayoutView::viewportConstrainedPosition(position));
+ if (ancestor->style()->position() != FixedPosition && container->isLayoutView())
+ toLayoutView(container)->adjustViewportConstrainedOffset(rect, LayoutView::viewportConstrainedPosition(position));
return;
}
- if (o->isLayoutView())
- toLayoutView(o)->mapToVisibleRectInContainerSpace(paintInvalidationContainer, rect, LayoutView::viewportConstrainedPosition(position), paintInvalidationState);
+ if (container->isLayoutView())
+ toLayoutView(container)->mapToVisibleRectInAncestorSpace(ancestor, rect, LayoutView::viewportConstrainedPosition(position), paintInvalidationState);
else
- o->mapToVisibleRectInContainerSpace(paintInvalidationContainer, rect, paintInvalidationState);
+ container->mapToVisibleRectInAncestorSpace(ancestor, rect, paintInvalidationState);
}
void LayoutBox::inflatePaintInvalidationRectForReflectionAndFilter(LayoutRect& paintInvalidationRect) const
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutBox.h ('k') | third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698