Description[Reland] Invalidate whitespace text on text color changes
This patch updates the optimization added in [1] to invalidate
whitespace text on color changes because whitespace text can have
decorations such as underlines which still need to repaint.
The big idea of the optimization in [1] is to not unnecessarily repaint
expensive items such as images that are in an <a> element. On hover, <a>
will change color and underline styles which should not affect images.
This patch adds a test to prove this optimization still works and
prevents it from breaking in the future.
This patch contains a fix for a performance regression[2] where text
nodes without text (i.e., !firstTextBox) would be invalidated. This is
tested by fast/repaint/inline-outline-repaint-2.html but was incorrectly
thought to be a benign change in the original patch. Additional comments
have been added both about the optimization and about the tricky
empty-text case. Additionally, hasTextBoxes has been introduced to make
this area cleaner.
[1] https://src.chromium.org/viewvc/blink?view=rev&revision=152046
[2] https://src.chromium.org/viewvc/blink?view=rev&revision=202374
BUG=529944
Patch Set 1 #Patch Set 2 : Revert changes to fast/repaint/inline-outline-repaint-2.html #
Total comments: 2
Patch Set 3 : firstTextBox() -> hasTextBoxes() where appropriate #Patch Set 4 : Minor cleanup #
Total comments: 2
Patch Set 5 : Rebase after blink merge #Patch Set 6 : Rebase with tests this time #Patch Set 7 : Fix rebase #Messages
Total messages: 29 (10 generated)
|