DescriptionFix paint invalidation logic for RenderText.
Previously, there was some special logic in RenderText::clippedOverflowRectForPaintInvalidation
to detect a special scenario when the paint invalidation container of the
RenderText was a child of the containing block/layer of the RenderText.
This had two flaws: one, it was checking for a condition different than that, and
two the descendant check is quite expensive if the paint invalidation container
is far away in the render tree from the RenderText.
The intent of the code is to delegate invalidation to the containing block/layer.
The new implementation does that directly, by overriding containerForPaintInvalidation as well as
clippedOverflowRectForPaintInvalidation
to delegate directly.
This also fixes a bug in which RenderText objects invalidate much too widely
if the RenderText is being reparented accross a frame boundary. This started
happening because now we let paint invalidation containers cross frame boundaries.
BUG=410541
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=181494
Patch Set 1 #Patch Set 2 : Fix crash for one test. #Patch Set 3 : Fixed. #
Total comments: 2
Patch Set 4 : Fixed #Patch Set 5 : Fix. #Patch Set 6 : Fix #
Total comments: 8
Patch Set 7 : Fix #Patch Set 8 : Fix test #Patch Set 9 : Fixed #
Messages
Total messages: 22 (7 generated)
|