Index: third_party/WebKit/Source/core/layout/LayoutTableCell.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp b/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp |
index 34f26d9f541d52afa7c5488ec92a51e92bc9a6f7..e149e6682d7d413abbd0b593f6223455371d05f2 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp |
@@ -315,14 +315,14 @@ LayoutSize LayoutTableCell::offsetFromContainer(const LayoutObject* o) const |
return offset; |
} |
-LayoutRect LayoutTableCell::clippedOverflowRectForPaintInvalidation(const LayoutBoxModelObject* paintInvalidationContainer, const PaintInvalidationState* paintInvalidationState) const |
+LayoutRect LayoutTableCell::localOverflowRectForPaintInvalidation() const |
{ |
// If the table grid is dirty, we cannot get reliable information about adjoining cells, |
// so we ignore outside borders. This should not be a problem because it means that |
// the table is going to recalculate the grid, relayout and issue a paint invalidation of its current rect, which |
// includes any outside borders of this cell. |
if (!table()->collapseBorders() || table()->needsSectionRecalc()) |
- return LayoutBlockFlow::clippedOverflowRectForPaintInvalidation(paintInvalidationContainer, paintInvalidationState); |
+ return LayoutBlockFlow::localOverflowRectForPaintInvalidation(); |
bool rtl = !styleForCellFlow().isLeftToRightDirection(); |
int outlineOutset = style()->outlineOutsetExtent(); |
@@ -355,17 +355,13 @@ LayoutRect LayoutTableCell::clippedOverflowRectForPaintInvalidation(const Layout |
} |
} |
LayoutPoint location(std::max(LayoutUnit(left), -visualOverflowRect().x()), std::max(LayoutUnit(top), -visualOverflowRect().y())); |
- LayoutRect r(-location.x(), -location.y(), location.x() + std::max(size().width() + right, visualOverflowRect().maxX()), location.y() + std::max(size().height() + bottom, visualOverflowRect().maxY())); |
- |
- mapToVisibleRectInAncestorSpace(paintInvalidationContainer, r, paintInvalidationState); |
- return r; |
+ return LayoutRect(-location.x(), -location.y(), location.x() + std::max(size().width() + right, visualOverflowRect().maxX()), location.y() + std::max(size().height() + bottom, visualOverflowRect().maxY())); |
} |
bool LayoutTableCell::mapToVisibleRectInAncestorSpace(const LayoutBoxModelObject* ancestor, LayoutRect& r, const PaintInvalidationState* paintInvalidationState, VisibleRectFlags visibleRectFlags) const |
{ |
if (ancestor == this) |
return true; |
- r.setY(r.y()); |
if ((!paintInvalidationState || !paintInvalidationState->canMapToAncestor(ancestor)) && parent()) |
r.moveBy(-parentBox()->location()); // Rows are in the same coordinate space, so don't add their offset in. |
return LayoutBlockFlow::mapToVisibleRectInAncestorSpace(ancestor, r, paintInvalidationState, visibleRectFlags); |