DescriptionDon't add rule features across ::content.
When we see a ::content selector, we mark the invalidation sets for the
selectors left of ::content as insertion-point-crossing. For such
invalidation sets, we mark insertion points for subtree style recalc,
which means that we don't need to look at the selector features right of
::content selectors for invalidations.
For instance for:
.a ::content .b .c
The invalidation set for '.b' contains '.c', and the invalidation set for
'.a' contains '.c' and has the insertion-point-crossing flag set. Adding
'c' is however unnecessary since ::content already causes a subtree style
recalc. Also, this may cause unnecessary invalidations in '.a's scope if
there are in-scope '.c' descendants of '.a'.
This CL avoids adding invalidation set features like '.c' to the
invalidation set for '.a' as illustrated above. Now invalidation sets
may have the insertion-point-crossing flag set while otherwise being
empty, and they should not be considered empty as we need to traverse
and mark all insertion points for such sets.
Committed: https://crrev.com/5324c1bd08a36f5cb1a6149882cd6ff1725491aa
Cr-Commit-Position: refs/heads/master@{#368064}
Patch Set 1 #Patch Set 2 : Fixed :host-context regression #
Total comments: 2
Patch Set 3 : Rebased #Patch Set 4 : Remove unused method #
Messages
Total messages: 18 (8 generated)
|