Commit 1768c76d authored by Chris Harrelson's avatar Chris Harrelson Committed by Commit Bot

[PE] Optimize InvalidatePaintUsingContainer.

If a paint invalidation container returns true from IsPaintInvalidationContainer(),
that means it is composited, which in turn must mean the containing LayoutView is composited.

This allows us to simplify the code and avoid a call to View(), which may be expensive
because it has to first dereference the document.

Bug: 814251
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I79cc37ee79271c2030a9f5c832ba5640ca8445c9
Reviewed-on: https://chromium-review.googlesource.com/957962Reviewed-by: default avatarPhilip Rogers <pdr@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542333}
parent 083faa86
...@@ -360,14 +360,9 @@ void ObjectPaintInvalidator::InvalidatePaintUsingContainer( ...@@ -360,14 +360,9 @@ void ObjectPaintInvalidator::InvalidatePaintUsingContainer(
if (!paint_invalidation_container.IsPaintInvalidationContainer()) { if (!paint_invalidation_container.IsPaintInvalidationContainer()) {
InvalidatePaintRectangleOnWindow(paint_invalidation_container, InvalidatePaintRectangleOnWindow(paint_invalidation_container,
EnclosingIntRect(dirty_rect)); EnclosingIntRect(dirty_rect));
} } else {
SetBackingNeedsPaintInvalidationInRect(paint_invalidation_container,
auto* view = paint_invalidation_container.View(); dirty_rect, invalidation_reason);
if (view && view->UsesCompositing()) {
if (paint_invalidation_container.IsPaintInvalidationContainer()) {
SetBackingNeedsPaintInvalidationInRect(paint_invalidation_container,
dirty_rect, invalidation_reason);
}
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment