| Index: third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp b/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
|
| index 2178eb5d92768f6df0638f76497c95ab2e9faeab..574c7c5e3f56c1e4ab967e40520181f1abf42668 100644
|
| --- a/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
|
| @@ -321,8 +321,8 @@ void PaintInvalidationState::updateForNormalChildren()
|
|
|
| // Do not clip scroll layer contents because the compositor expects the whole layer
|
| // to be always invalidated in-time.
|
| - if (box.usesCompositedScrolling())
|
| - ASSERT(!m_clipped); // The box should establish paint invalidation container, so no m_clipped inherited.
|
| + if (box == m_paintInvalidationContainer && box.scrollsOverflow())
|
| + ASSERT(!m_clipped); // The box establishes paint invalidation container, so no m_clipped inherited.
|
| else
|
| addClipRectRelativeToPaintOffset(box.overflowClipRect(LayoutPoint()));
|
|
|
| @@ -385,10 +385,7 @@ LayoutRect PaintInvalidationState::computePaintInvalidationRectInBackingForSVG()
|
| if (m_clipped)
|
| rect.intersect(m_clipRect);
|
| #if ASSERT_SAME_RESULT_SLOW_AND_FAST_PATH
|
| - // TODO(crbug.com/597902): Slow path misses clipping of paintInvalidationContainer.
|
| LayoutRect slowPathRect = SVGLayoutSupport::clippedOverflowRectForPaintInvalidation(m_currentObject, *m_paintInvalidationContainer);
|
| - if (m_clipped)
|
| - slowPathRect.intersect(m_clipRect);
|
| assertRectsEqual(m_currentObject, m_paintInvalidationContainer, rect, slowPathRect);
|
| #endif
|
| } else {
|
| @@ -404,11 +401,10 @@ LayoutRect PaintInvalidationState::computePaintInvalidationRectInBackingForSVG()
|
|
|
| static void slowMapToVisualRectInAncestorSpace(const LayoutObject& object, const LayoutBoxModelObject& ancestor, LayoutRect& rect)
|
| {
|
| - if (object.isLayoutView()) {
|
| + if (object.isLayoutView())
|
| toLayoutView(object).mapToVisualRectInAncestorSpace(&ancestor, rect, InputIsInFrameCoordinates, DefaultVisualRectFlags);
|
| - } else {
|
| + else
|
| object.mapToVisualRectInAncestorSpace(&ancestor, rect);
|
| - }
|
| }
|
|
|
| void PaintInvalidationState::mapLocalRectToPaintInvalidationContainer(LayoutRect& rect) const
|
| @@ -424,9 +420,6 @@ void PaintInvalidationState::mapLocalRectToPaintInvalidationContainer(LayoutRect
|
| if (m_clipped)
|
| rect.intersect(m_clipRect);
|
| #if ASSERT_SAME_RESULT_SLOW_AND_FAST_PATH
|
| - // TODO(crbug.com/597902): Slow path misses clipping of paintInvalidationContainer.
|
| - if (m_clipped)
|
| - slowPathRect.intersect(m_clipRect);
|
| assertRectsEqual(m_currentObject, *m_paintInvalidationContainer, rect, slowPathRect);
|
| #endif
|
| } else {
|
|
|