Mark universal rules as covered by the universal bucket.
We earlier concluded marking universal rules automatically as covered
wasn't worth it, but for the universal bucket, it makes more sense;
it doesn't cost much (because we put fewer rules in the universal
bucket), and it makes more selectors be considered easy. Especially
the case “.foo *” is moderately common.
This is generally imperceptible in our benchmarks, so it is mostly
because it feels sane. It is, however, measurable in how many selectors
in the style perftest go through the different paths:
Entirely covered by bucketing: 20.5% → 22.2%
Easy selectors: 34.7% → 34.8%
Full selector checking: 44.7% → 43.0%
This uncovered a bug where easy selector checking (and bucket trusting)
would be inadvertently activated for the shadow host, even though it
does not understand that it should be featureless. Properly disable it
in those cases.
Change-Id: Ieb09dd42c4594110d92a4eccb262302e8c0116c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5876029
Reviewed-by: Anders Hartvoll Ruud andruud@chromium.org
Commit-Queue: Steinar H Gunderson sesse@chromium.org
Cr-Commit-Position: refs/heads/main@{#1359864}