| Index: third_party/WebKit/Source/core/layout/LayoutObject.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.cpp b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
|
| index 80b5de729fdeeb9c48259570b3956b2a4805960d..f8198c2d73933106465f52b2e401e5662b67ac88 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutObject.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
|
| @@ -1259,7 +1259,7 @@
|
| // Don't set the flag here because getting enclosingSelfPaintLayer has cost and the caller can use
|
| // various ways (e.g. PaintInvalidatinState::enclosingSelfPaintingLayer()) to reduce the cost.
|
| ASSERT(!paintingLayer() || paintingLayer()->needsRepaint());
|
| - paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*this, invalidationReason, this);
|
| + paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*this, invalidationReason);
|
| }
|
|
|
| void LayoutObject::invalidateDisplayItemClientsWithPaintInvalidationState(const LayoutBoxModelObject& paintInvalidationContainer, const PaintInvalidationState& paintInvalidationState, PaintInvalidationReason invalidationReason) const
|
| @@ -1560,18 +1560,22 @@
|
| LayoutUnit deltaRight = newBounds.maxX() - oldBounds.maxX();
|
| if (deltaRight > 0) {
|
| LayoutRect invalidationRect(oldBounds.maxX(), newBounds.y(), deltaRight, newBounds.height());
|
| + adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalidationContainer);
|
| invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, PaintInvalidationIncremental);
|
| } else if (deltaRight < 0) {
|
| LayoutRect invalidationRect(newBounds.maxX(), oldBounds.y(), -deltaRight, oldBounds.height());
|
| + adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalidationContainer);
|
| invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, PaintInvalidationIncremental);
|
| }
|
|
|
| LayoutUnit deltaBottom = newBounds.maxY() - oldBounds.maxY();
|
| if (deltaBottom > 0) {
|
| LayoutRect invalidationRect(newBounds.x(), oldBounds.maxY(), newBounds.width(), deltaBottom);
|
| + adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalidationContainer);
|
| invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, PaintInvalidationIncremental);
|
| } else if (deltaBottom < 0) {
|
| LayoutRect invalidationRect(oldBounds.x(), newBounds.maxY(), oldBounds.width(), -deltaBottom);
|
| + adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalidationContainer);
|
| invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, PaintInvalidationIncremental);
|
| }
|
| }
|
| @@ -1581,6 +1585,7 @@
|
| // The following logic avoids invalidating twice if one set of bounds contains the other.
|
| if (!newBounds.contains(oldBounds)) {
|
| LayoutRect invalidationRect = oldBounds;
|
| + adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalidationContainer);
|
| invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, invalidationReason);
|
|
|
| if (oldBounds.contains(newBounds))
|
| @@ -1588,6 +1593,7 @@
|
| }
|
|
|
| LayoutRect invalidationRect = newBounds;
|
| + adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalidationContainer);
|
| invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, invalidationReason);
|
| }
|
|
|
| @@ -3578,6 +3584,7 @@
|
| DisableCompositingQueryAsserts compositingDisabler;
|
|
|
| LayoutRect invalidationRect = previousPaintInvalidationRect();
|
| + adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalidationContainer);
|
| invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, reason);
|
| invalidateDisplayItemClients(paintInvalidationContainer, reason);
|
|
|
|
|