| 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 14c00546a8a292551c6347ed9a5fb84f5be9875a..0e34c2218893bc322488de07008eafeff852040f 100644
|
| --- a/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
|
| @@ -307,14 +307,14 @@ void PaintInvalidationState::updateForNormalChildren()
|
|
|
| const LayoutBox& box = toLayoutBox(m_currentObject);
|
|
|
| - // Do not clip scroll layer contents because the compositor expects the whole layer
|
| - // to be always invalidated in-time.
|
| - if (box == m_paintInvalidationContainer && box.scrollsOverflow())
|
| + // Do not clip or scroll for the paint invalidation container, if it scrolls overflow, because it will always use composited
|
| + // scrolling in this case.
|
| + if (box == m_paintInvalidationContainer && box.scrollsOverflow()) {
|
| ASSERT(!m_clipped); // The box establishes paint invalidation container, so no m_clipped inherited.
|
| - else
|
| + } else {
|
| addClipRectRelativeToPaintOffset(box.overflowClipRect(LayoutPoint()));
|
| -
|
| - m_paintOffset -= box.scrolledContentOffset();
|
| + m_paintOffset -= box.scrolledContentOffset();
|
| + }
|
|
|
| // FIXME: <http://bugs.webkit.org/show_bug.cgi?id=13443> Apply control clip if present.
|
| }
|
| @@ -323,7 +323,11 @@ static FloatPoint slowLocalToAncestorPoint(const LayoutObject& object, const Lay
|
| {
|
| if (object.isLayoutView())
|
| return toLayoutView(object).localToAncestorPoint(point, &ancestor, TraverseDocumentBoundaries | InputIsInFrameCoordinates);
|
| - return object.localToAncestorPoint(point, &ancestor, TraverseDocumentBoundaries);
|
| + FloatPoint result = object.localToAncestorPoint(point, &ancestor, TraverseDocumentBoundaries);
|
| + // Paint invalidation does not include scroll of the ancestor.
|
| + if (ancestor.isBox())
|
| + result.move(toLayoutBox(&ancestor)->scrolledContentOffset());
|
| + return result;
|
| }
|
|
|
| LayoutPoint PaintInvalidationState::computePositionFromPaintInvalidationBacking() const
|
|
|