Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[@scope] Evaluate scoped rules in SelectorChecker #33740

Merged
merged 1 commit into from Apr 25, 2022

Conversation

chromium-wpt-export-bot
Copy link
Collaborator

@chromium-wpt-export-bot chromium-wpt-export-bot commented Apr 21, 2022

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}

Copy link
Collaborator

@wpt-pr-bot wpt-pr-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The review process for this patch is being conducted in the Chromium project.

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}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants