ladybird/Libraries/LibWeb/CSS/Invalidation
Sam Atkins 4f8c682c21 LibWeb: Invalidate scoped styles when boundaries change
Scoped rules depend on their `@scope` start and end selectors, not just
the selectors for the declarations inside the rule. Register those
boundary selectors in the style invalidation data and selector insights
so mutations that create or remove scope roots or limits invalidate
descendant styles that may now match differently.

Scope boundary matching also needs to record selector involvement
against the element being styled. That keeps :has(), sibling, and
structural selector invalidation from treating the boundary candidate
as the only affected subject.

Run the stored :has() invalidation plans for affected anchors as well
as marking subject anchors dirty. This lets scope-boundary :has()
changes invalidate scoped descendants instead of leaving stale styles.
2026-06-01 08:28:11 +01:00
..
AdoptedStyleSheetInvalidator.cpp LibWeb: Use targeted invalidation when adopting a stylesheet 2026-05-10 20:19:32 +02:00
AdoptedStyleSheetInvalidator.h LibWeb: Move adopted stylesheet invalidation into a helper 2026-04-29 15:47:23 +02:00
AncestorTraversal.h LibWeb: Use invalidation plans for pseudo-class changes 2026-05-23 23:37:36 +02:00
AttributeInvalidator.cpp LibWeb: Move attribute style invalidation into a helper 2026-04-29 15:47:23 +02:00
AttributeInvalidator.h LibWeb: Move attribute style invalidation into a helper 2026-04-29 15:47:23 +02:00
CustomElementInvalidator.cpp LibWeb: Propagate inherited style across slot boundaries 2026-05-22 09:38:59 +02:00
CustomElementInvalidator.h LibWeb: Move custom state set invalidation into the helper 2026-04-29 15:47:23 +02:00
ElementStateInvalidator.cpp LibWeb: Move shadow root style invalidation into the helper 2026-04-29 15:47:23 +02:00
ElementStateInvalidator.h LibWeb: Move shadow root style invalidation into the helper 2026-04-29 15:47:23 +02:00
EmbeddedContentInvalidator.cpp LibWeb: Move embedded content style invalidation into a helper 2026-04-29 15:47:23 +02:00
EmbeddedContentInvalidator.h LibWeb: Move embedded content style invalidation into a helper 2026-04-29 15:47:23 +02:00
FormControlInvalidator.cpp LibWeb: Move checked-state invalidation into a helper 2026-04-29 15:47:23 +02:00
FormControlInvalidator.h LibWeb: Move checked-state invalidation into a helper 2026-04-29 15:47:23 +02:00
HasMutationFeatureCollector.cpp LibWeb: Move invalidation set matching into a helper 2026-04-29 15:47:23 +02:00
HasMutationFeatureCollector.h LibWeb: Move :has() mutation checks into a helper 2026-04-29 15:47:23 +02:00
HasMutationInvalidator.cpp LibWeb: Invalidate scoped styles when boundaries change 2026-06-01 08:28:11 +01:00
HasMutationInvalidator.h LibWeb: Move pending :has() invalidation into the helper 2026-04-29 15:47:23 +02:00
InvalidationSetMatcher.cpp LibWeb: Narrow pseudo-class self invalidation 2026-05-30 02:13:23 +02:00
InvalidationSetMatcher.h LibWeb: Narrow pseudo-class self invalidation 2026-05-30 02:13:23 +02:00
LanguageInvalidator.cpp LibWeb: Skip unchanged :has() mutation fanout 2026-04-30 00:24:04 +02:00
LanguageInvalidator.h LibWeb: Move text directionality invalidation into the helper 2026-04-29 15:47:23 +02:00
LinkInvalidator.cpp LibWeb: Move hyperlink style invalidation into a helper 2026-04-29 15:47:23 +02:00
LinkInvalidator.h LibWeb: Move hyperlink style invalidation into a helper 2026-04-29 15:47:23 +02:00
MediaQueryInvalidator.cpp LibWeb: Target media query change invalidation 2026-05-25 19:18:10 +02:00
MediaQueryInvalidator.h LibWeb: Move media query style invalidation into a helper 2026-04-29 15:47:23 +02:00
NodeInvalidator.cpp LibWeb: Narrow pseudo-class self invalidation 2026-05-30 02:13:23 +02:00
NodeInvalidator.h LibWeb: Move node style invalidation into a helper 2026-04-29 15:47:23 +02:00
PartInvalidator.cpp LibWeb: Move part style invalidation into a helper 2026-04-29 15:47:23 +02:00
PartInvalidator.h LibWeb: Move part style invalidation into a helper 2026-04-29 15:47:23 +02:00
PseudoClassInvalidator.cpp LibWeb: Narrow pseudo-class self invalidation 2026-05-30 02:13:23 +02:00
PseudoClassInvalidator.h LibWeb: Use invalidation plans for pseudo-class changes 2026-05-23 23:37:36 +02:00
SlotInvalidator.cpp LibWeb: Propagate inherited style across slot boundaries 2026-05-22 09:38:59 +02:00
SlotInvalidator.h LibWeb: Propagate inherited style across slot boundaries 2026-05-22 09:38:59 +02:00
StructuralMutationInvalidator.cpp LibWeb: Target :first/:last/:only-child sibling invalidation precisely 2026-05-06 21:22:02 +02:00
StructuralMutationInvalidator.h LibWeb: Move structural mutation invalidation into a helper 2026-04-29 15:47:23 +02:00
StyleInvalidator.cpp LibWeb: Guard non-subject pseudo-class invalidations 2026-05-24 15:32:39 +02:00
StyleInvalidator.h LibWeb: Move StyleInvalidator into CSS invalidation 2026-04-29 15:47:23 +02:00