| 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 0c6f807ad672cb735dc2bb633c22be393993eedb..7f99056f295989d367d4e20e5db8bc2c3d001678 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutObject.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
|
| @@ -1219,7 +1219,7 @@ void LayoutObject::invalidatePaintUsingContainer(const LayoutBoxModelObject& pai
|
| invalidatePaintRectangleOnWindow(paintInvalidationContainer, enclosingIntRect(dirtyRect));
|
|
|
| if (paintInvalidationContainer.view()->usesCompositing() && paintInvalidationContainer.isPaintInvalidationContainer())
|
| - paintInvalidationContainer.setBackingNeedsPaintInvalidationInRect(dirtyRect, invalidationReason);
|
| + paintInvalidationContainer.setBackingNeedsPaintInvalidationInRect(dirtyRect, invalidationReason, *this);
|
| }
|
|
|
| void LayoutObject::invalidateDisplayItemClient(const DisplayItemClient& displayItemClient) const
|
| @@ -1389,13 +1389,11 @@ inline void LayoutObject::invalidateSelectionIfNeeded(const LayoutBoxModelObject
|
|
|
| setPreviousSelectionRectForPaintInvalidation(newSelectionRect);
|
|
|
| + // TODO(wangxianzhu): Combine the following two conditions when removing LayoutView::doingFullPaintInvalidation().
|
| + if (!fullInvalidation)
|
| + fullyInvalidatePaint(paintInvalidationContainer, PaintInvalidationSelection, oldSelectionRect, newSelectionRect);
|
| if (shouldInvalidateSelection())
|
| invalidateDisplayItemClientsWithPaintInvalidationState(paintInvalidationContainer, paintInvalidationState, PaintInvalidationSelection);
|
| -
|
| - if (fullInvalidation)
|
| - return;
|
| -
|
| - fullyInvalidatePaint(paintInvalidationContainer, PaintInvalidationSelection, oldSelectionRect, newSelectionRect);
|
| }
|
|
|
| PaintInvalidationReason LayoutObject::invalidatePaintIfNeeded(const PaintInvalidationState& paintInvalidationState)
|
| @@ -1464,15 +1462,12 @@ PaintInvalidationReason LayoutObject::invalidatePaintIfNeeded(const PaintInvalid
|
| return invalidationReason;
|
| }
|
|
|
| - invalidateDisplayItemClientsWithPaintInvalidationState(paintInvalidationContainer, paintInvalidationState, invalidationReason);
|
| -
|
| - if (invalidationReason == PaintInvalidationIncremental) {
|
| + if (invalidationReason == PaintInvalidationIncremental)
|
| incrementallyInvalidatePaint(paintInvalidationContainer, oldBounds, newBounds, newLocation);
|
| - return invalidationReason;
|
| - }
|
| -
|
| - fullyInvalidatePaint(paintInvalidationContainer, invalidationReason, oldBounds, newBounds);
|
| + else
|
| + fullyInvalidatePaint(paintInvalidationContainer, invalidationReason, oldBounds, newBounds);
|
|
|
| + invalidateDisplayItemClientsWithPaintInvalidationState(paintInvalidationContainer, paintInvalidationState, invalidationReason);
|
| return invalidationReason;
|
| }
|
|
|
| @@ -3569,8 +3564,8 @@ void LayoutObject::invalidatePaintOfPreviousPaintInvalidationRect(const LayoutBo
|
|
|
| LayoutRect invalidationRect = previousPaintInvalidationRect();
|
| adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalidationContainer);
|
| - invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, PaintInvalidationLayer);
|
| - invalidateDisplayItemClients(paintInvalidationContainer, PaintInvalidationLayer);
|
| + invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, reason);
|
| + invalidateDisplayItemClients(paintInvalidationContainer, reason);
|
|
|
| // This method may be used to invalidate paint of an object changing paint invalidation container.
|
| // Clear previous paint invalidation rect on the original paint invalidation container to avoid
|
|
|