[:is/:where] Handle type rule invalidation
We currently have a bug where :is/:where/:-webkit-any(.a, div) doesn't cause 'div' to enter the type rule invalidation set. This CL fixes that bug by tracking the emitted tag names separately. The idea is that you can look at the features returned from UpdateInvalidationSetsForComplex, and if has_features_for_rule_- set_invalidation is false, then the (regular) tag names are the ones that need to be added to the type rule invalidation set, and the emitted tag names can be ignored. It was necessary to change how has_features_for_rule_set_invalidation is set during feature extraction. We currently set this to true if we have _any_ id/class/attribute feature after list extraction, but this means we consider :is(.a, div) to have features for type rule purposes, so that doesn't work. This CL changes that such that all selectors in the nested list need to have features for the flag to be set for the outer selector. Bug: 568705 Change-Id: Ibbfa8166a1bbb27d7e90f48f44bfe7bc9c6e6851 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2433928 Commit-Queue: Anders Hartvoll Ruud <andruud@chromium.org> Reviewed-by:Rune Lillesveen <futhark@chromium.org> Cr-Commit-Position: refs/heads/master@{#812628}
Showing
Please register or sign in to comment