Chromium Code Reviews
DescriptionRuleSet invalidations on single feature only, including tags.
If we add a stylesheet with selector "#x span", we would
invalidate both #x and span elements regardless of whether the span
elements were descendants of #x. Instead introduce a bit on
invalidation sets saying if it should be scheduled for ruleset
invalidations or not, and mark only a single invalidation set per
selector.
Consider ".x #y". We will walk from right to left and remember one
simple selector for which we use invalidation sets. We choose more
specific selectors over less specific and choose the leftmost simple
selector for selectors with the same specificity. So in this case, we
will mark the invalidation set for "#y" to be used for ruleset
invalidation. For ".x .y", we will mark the invalidation set for ".x".
Additionally we create a singleton invalidation set to be scheduled on
the root node for element type invalidations. That is, for selectors
which contain a type selector in the rightmost compound, but do not
contain id, class, or attribute, we add that type selector to the
type invalidation set and schedule it on the root node for ruleset
invalidations.
BUG=680549
Patch Set 1 #Patch Set 2 : Expected result for experimental invalidation tracking. #
Total comments: 1
Patch Set 3 : Trace type ruleset invalidation #Messages
Total messages: 10 (9 generated)
|