| 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 086b5b51fe0577a335892660e0d1b486135072ab..db7c066603e031565dbc37c3a0b61422074c27e6 100644
 | 
| --- a/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
 | 
| +++ b/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
 | 
| @@ -43,6 +43,8 @@ PaintInvalidationState::PaintInvalidationState(
 | 
|        m_cachedOffsetsEnabled(true),
 | 
|        m_cachedOffsetsForAbsolutePositionEnabled(true),
 | 
|        m_paintInvalidationContainer(&layoutView.containerForPaintInvalidation()),
 | 
| +      m_scrollAdjustment(
 | 
| +          m_paintInvalidationContainer->scrollAdjustmentForPaintInvalidation()),
 | 
|        m_paintInvalidationContainerForStackedContents(
 | 
|            m_paintInvalidationContainer),
 | 
|        m_containerForAbsolutePosition(layoutView),
 | 
| @@ -85,6 +87,7 @@ PaintInvalidationState::PaintInvalidationState(
 | 
|        m_cachedOffsetsForAbsolutePositionEnabled(
 | 
|            parentState.m_cachedOffsetsForAbsolutePositionEnabled),
 | 
|        m_paintInvalidationContainer(parentState.m_paintInvalidationContainer),
 | 
| +      m_scrollAdjustment(parentState.m_scrollAdjustment),
 | 
|        m_paintInvalidationContainerForStackedContents(
 | 
|            parentState.m_paintInvalidationContainerForStackedContents),
 | 
|        m_containerForAbsolutePosition(
 | 
| @@ -120,6 +123,7 @@ PaintInvalidationState::PaintInvalidationState(
 | 
|    DCHECK(parentState.m_didUpdateForChildren);
 | 
|  #endif
 | 
|  
 | 
| +  const auto* oldPaintInvalidationContainer = m_paintInvalidationContainer;
 | 
|    if (currentObject.isPaintInvalidationContainer()) {
 | 
|      m_paintInvalidationContainer = toLayoutBoxModelObject(¤tObject);
 | 
|      if (currentObject.styleRef().isStackingContext())
 | 
| @@ -167,6 +171,15 @@ PaintInvalidationState::PaintInvalidationState(
 | 
|            PaintInvalidatorContext::ForcedSubtreeFullInvalidation;
 | 
|    }
 | 
|  
 | 
| +  if (m_paintInvalidationContainer != oldPaintInvalidationContainer) {
 | 
| +    m_scrollAdjustment =
 | 
| +        m_paintInvalidationContainer->scrollAdjustmentForPaintInvalidation();
 | 
| +  } else {
 | 
| +    DCHECK(
 | 
| +        m_scrollAdjustment ==
 | 
| +        m_paintInvalidationContainer->scrollAdjustmentForPaintInvalidation());
 | 
| +  }
 | 
| +
 | 
|    if (!currentObject.isBoxModelObject() && !currentObject.isSVG())
 | 
|      return;
 | 
|  
 | 
| @@ -442,14 +455,13 @@ LayoutPoint PaintInvalidationState::computeLocationInBacking(
 | 
|        point = slowLocalToAncestorPoint(
 | 
|            m_currentObject, *m_paintInvalidationContainer, FloatPoint());
 | 
|      }
 | 
| +
 | 
| +    point.move(m_scrollAdjustment);
 | 
|    }
 | 
|  
 | 
|    PaintLayer::mapPointInPaintInvalidationContainerToBacking(
 | 
|        *m_paintInvalidationContainer, point);
 | 
|  
 | 
| -  point.move(m_currentObject.scrollAdjustmentForPaintInvalidation(
 | 
| -      *m_paintInvalidationContainer));
 | 
| -
 | 
|    return LayoutPoint(point);
 | 
|  }
 | 
|  
 | 
| @@ -493,8 +505,8 @@ LayoutRect PaintInvalidationState::computeVisualRectInBackingForSVG() const {
 | 
|  
 | 
|    m_currentObject.adjustVisualRectForRasterEffects(rect);
 | 
|  
 | 
| -  rect.move(m_currentObject.scrollAdjustmentForPaintInvalidation(
 | 
| -      *m_paintInvalidationContainer));
 | 
| +  if (m_currentObject != m_paintInvalidationContainer)
 | 
| +    rect.move(m_scrollAdjustment);
 | 
|  
 | 
|    return rect;
 | 
|  }
 | 
| @@ -551,8 +563,8 @@ void PaintInvalidationState::mapLocalRectToVisualRectInBacking(
 | 
|  
 | 
|    m_currentObject.adjustVisualRectForRasterEffects(rect);
 | 
|  
 | 
| -  rect.move(m_currentObject.scrollAdjustmentForPaintInvalidation(
 | 
| -      *m_paintInvalidationContainer));
 | 
| +  if (m_currentObject != m_paintInvalidationContainer)
 | 
| +    rect.move(m_scrollAdjustment);
 | 
|  }
 | 
|  
 | 
|  void PaintInvalidationState::addClipRectRelativeToPaintOffset(
 | 
| 
 |