Bug 1765873 [wpt PR 33740] - [@scope] Evaluate scoped rules in SelectorChecker, a...
commitb863af101e038bd1501fdf0d6cdeb4a56dcd0b94
authorAnders Hartvoll Ruud <andruud@chromium.org>
Sat, 7 May 2022 11:29:31 +0000 (7 11:29 +0000)
committermoz-wptsync-bot <wptsync@mozilla.com>
Sun, 15 May 2022 20:20:51 +0000 (15 20:20 +0000)
tree9a6bd82470a439c0761f7b8337958f6b1205c56a
parentdb1339e33db3a5e62d3db2690a4e7c8133f1944a
Bug 1765873 [wpt PR 33740] - [@scope] Evaluate scoped rules in SelectorChecker, a=testonly

Automatic update from web-platform-tests
[@scope] Evaluate scoped rules in SelectorChecker

This CL propagates the enclosing StyleScope (if any) to
SelectorChecker, such that we can perform an additional check
(CheckInStyleScope) to see if the subject element is in scope.

Several different approaches were considered, but in order to remain
agile with regards to the different paths the css-cascade-6
specification might take from this point, I opted to handle it
entirely within SelectorChecker, even if other approaches may be
more efficient. It is more important that the prototype is able to
handle alternative entry points to the feature (if needed) than it
is to have the best possible performance right away.

Many performance optimizations are planned as follow-ups, most
notably:

 - Making use of the fast reject filter.
 - Multiple StyleScopeFrames with longer lifetimes.

Note also that addressing the following is deferred to future CLs:

 - ShadowDOM
 - Invalidation

Bug: 1280240
Change-Id: I050e7d8249688ae6d6d67431dceca5eabfbcc7fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3582131
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Anders Hartvoll Ruud <andruud@chromium.org>
Cr-Commit-Position: refs/heads/main@{#995669}

--

wpt-commits: 1c1dee3fb52f206de28ce4ecf0f1c382f173b775
wpt-pr: 33740
testing/web-platform/tests/css/css-cascade/scope-deep.html [new file with mode: 0644]
testing/web-platform/tests/css/css-cascade/scope-evaluation.html [new file with mode: 0644]
testing/web-platform/tests/css/css-cascade/scope-proximity.html [new file with mode: 0644]