DescriptionBit-mask incorrectly removed first-line pseudo bit.
The m_pseudoBits member only contains the 8 bits for the public pseudo
element bits, yet we used a mask to retrieve them. That mask was
incorrectly set to 0x1fe when it should have been 0xff. Anyway, that
mask is unnecessary and removed.
The mask issue caused StylePropagationDiff, returned from
diffPseudoStyles, to be NoChange for pure ::first-line changes. That
NoChange return were the only case which triggered first-line
invalidation properly.
Instead, always check for pseudo style changes in
pseudoStyleCacheIsInvalid. This fixes issue 698451.
The pseudoStyleCacheIsInvalid method has a weird name, has bugs, and
should be put on LayoutObject and called as part of setStyle instead.
That is for follow-up CLs.
R=meade@chromium.org,mstensho@opera.com
BUG=698451
Review-Url: https://codereview.chromium.org/2729373003
Cr-Commit-Position: refs/heads/master@{#454850}
Committed: https://chromium.googlesource.com/chromium/src/+/f193ee6d21e6548ed425746ec80fb71faa7998a5
Patch Set 1 #
Total comments: 2
Patch Set 2 : Fixed issues. #
Messages
Total messages: 14 (8 generated)
|