Chromium Code Reviews| 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 f8198c2d73933106465f52b2e401e5662b67ac88..c877ac8fdcc62c501fefab80ef1922bd106e0aaa 100644 |
| --- a/third_party/WebKit/Source/core/layout/LayoutObject.cpp |
| +++ b/third_party/WebKit/Source/core/layout/LayoutObject.cpp |
| @@ -1223,8 +1223,9 @@ void LayoutObject::invalidatePaintUsingContainer(const LayoutBoxModelObject& pai |
| if (!paintInvalidationContainer.isPaintInvalidationContainer()) |
| invalidatePaintRectangleOnWindow(paintInvalidationContainer, enclosingIntRect(dirtyRect)); |
| + bool compositedScrolling = paintInvalidationContainer.usesCompositedScrolling() && &paintInvalidationContainer != this; |
|
Xianzhu
2016/05/31 16:06:20
You can move this into LayoutBoxModelObject::setBa
chrishtr
2016/05/31 16:36:43
Done.
|
| if (paintInvalidationContainer.view()->usesCompositing() && paintInvalidationContainer.isPaintInvalidationContainer()) |
| - paintInvalidationContainer.setBackingNeedsPaintInvalidationInRect(dirtyRect, invalidationReason, *this); |
| + paintInvalidationContainer.setBackingNeedsPaintInvalidationInRect(dirtyRect, invalidationReason, *this, compositedScrolling); |
| } |
| void LayoutObject::invalidateDisplayItemClient(const DisplayItemClient& displayItemClient) const |
| @@ -1560,22 +1561,18 @@ void LayoutObject::incrementallyInvalidatePaint(const LayoutBoxModelObject& pain |
| 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); |
| } |
| } |
| @@ -1585,7 +1582,6 @@ void LayoutObject::fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalid |
| // 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)) |
| @@ -1593,7 +1589,6 @@ void LayoutObject::fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalid |
| } |
| LayoutRect invalidationRect = newBounds; |
| - adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalidationContainer); |
| invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, invalidationReason); |
| } |
| @@ -3584,7 +3579,6 @@ void LayoutObject::invalidatePaintOfPreviousPaintInvalidationRect(const LayoutBo |
| DisableCompositingQueryAsserts compositingDisabler; |
| LayoutRect invalidationRect = previousPaintInvalidationRect(); |
| - adjustInvalidationRectForCompositedScrolling(invalidationRect, paintInvalidationContainer); |
| invalidatePaintUsingContainer(paintInvalidationContainer, invalidationRect, reason); |
| invalidateDisplayItemClients(paintInvalidationContainer, reason); |