merge_pr_45846
版本发布时间: 2024-04-24 20:58:40
web-platform-tests/wpt最新发布版本:merge_pr_48029(2024-09-07 13:25:31)
[@scope] Treat kScopeActivation as a special kSubSelector
The internal selector relation kScopeActivation is inserted by the selector parser for selectors within @scope. This relation, when encountered in the selector, basically figures out if we're in scope [1], what the scoping roots are (there may be multiple), and tries to match the rest of the selector with context.scope set to those roots.
However, kScopeActivation is not a combinator: it does not change the current element being considered for matching. In this respect, it's much like the kSubSelector relation. This CL treats it as such in SelectorChecker::MatchSelector, by skipping the combinator- related checks for exceeding the scope [2] and dynamic_pseudo matching (i.e. exactly the same as kSubSelector).
I've moved the handling of kScopeActivation to a separate function (MatchForScopeActivation) to make it more clear that it's a special case (like MatchForSubSelector), and not like the other relations.
This fixes a bug where selectors with pseudo-elements within @scope would match the originating element instead (due to missing dynamic_pseudo).
[1] https://drafts.csswg.org/css-cascade-6/#in-scope [2] Although we already skipped this for kScopeActivation.
Fixed: 335337303 Change-Id: I6f421c317c00efba5be8ca1407455f03e414a174 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5476369 Reviewed-by: Rune Lillesveen futhark@chromium.org Commit-Queue: Anders Hartvoll Ruud andruud@chromium.org Cr-Commit-Position: refs/heads/main@{#1291819}
1、 MANIFEST-e70c25a52544b0c1d140a2725526734a123a4f18.json.bz2 2.42MB
2、 MANIFEST-e70c25a52544b0c1d140a2725526734a123a4f18.json.gz 2.96MB
3、 MANIFEST-e70c25a52544b0c1d140a2725526734a123a4f18.json.zst 2.43MB
4、 WEB_FEATURES_MANIFEST-e70c25a52544b0c1d140a2725526734a123a4f18.json.bz2 56.4KB
5、 WEB_FEATURES_MANIFEST-e70c25a52544b0c1d140a2725526734a123a4f18.json.gz 64.34KB
6、 WEB_FEATURES_MANIFEST-e70c25a52544b0c1d140a2725526734a123a4f18.json.zst 55.5KB