Chromium Code Reviews
DescriptionFix paint invalidation of paintInvalidationContainer itself
LayoutBlock::invalidatePaintOfSubtreesIfNeeded() has a condition.
paintInvalidationContainerForChild != childPaintInvalidationState.paintInvalidationContainer()
to use the ForceHorriblySlowRectMapping path in case that the
PaintInvalidationState fails to get the correct paintInvalidationContainer.
However, the childPaintInvalidationState actually contains the parent
paintInvalidationContainer if the current object itself is a
paintInvalidationContainer so the above condition is false for
out-of-flow-positioned composited objects, and will use the
ForceHorriblySlowRectMapping path for paint invalidation of the subtree.
Also LayoutBox::mapToVisibleRectInAncestorSpace() depends on the fact
that paintInvalidationState contains parent paintInvalidationContainer
if the current object itself is a paintInvalidationContainer. To avoid
the dependency we should check 'ancestor == this' before checking
PaintInvalidationState.
BUG=371485, 591199
Committed: https://crrev.com/df97b1c6526b25450d767b2098c8ee1c3d124b95
Cr-Commit-Position: refs/heads/master@{#380865}
Patch Set 1 #
Total comments: 10
Patch Set 2 : #
Total comments: 4
Patch Set 3 : #Patch Set 4 : #Dependent Patchsets: Messages
Total messages: 21 (5 generated)
|