ladybird/Libraries/LibWeb/CSS/Invalidation
Andreas Kling f45bf0e770 LibWeb: Bucket ancestor-filtered rules by ancestor hash
Add a late rule-cache bucket for selectors that do not expose a
current-element bucket but do expose ancestor-filter metadata. These
rules previously stayed in the global other bucket and relied on the
ancestor filter after broad enumeration.

Visit the new buckets only when the current ancestor bloom filter may
contain the bucket hash. Keep pseudo-class invalidation caches opted
out because those caches answer targeted invalidation questions rather
than normal style collection.

On the GitHub profile, other-bucket candidates fell from about 5.50k
to about 1.07k per 1k rule collection calls.
2026-06-19 09:36:53 +02: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: Target :active and :open invalidation 2026-06-18 13:42:51 +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: Invalidate style when form control validity changes 2026-06-08 19:28:37 +02:00
FormControlInvalidator.h LibWeb: Invalidate style when form control validity changes 2026-06-08 19:28:37 +02:00
HasMutationFeatureCollector.cpp LibWeb: Build style invalidation data lazily 2026-06-18 15:45:12 +02:00
HasMutationFeatureCollector.h LibWeb: Target :active and :open invalidation 2026-06-18 13:42:51 +02:00
HasMutationInvalidator.cpp LibWeb: Keep pseudo-element rules in pseudo buckets 2026-06-19 01:40:49 +02:00
HasMutationInvalidator.h LibWeb: Avoid needless :has() descendant fanout 2026-06-08 17:16:18 +02:00
InvalidationSetMatcher.cpp LibWeb: Track validity pseudo-classes for style invalidation 2026-06-08 19:28:37 +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: Build style invalidation data lazily 2026-06-18 15:45:12 +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: Bucket ancestor-filtered rules by ancestor hash 2026-06-19 09:36:53 +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: Avoid broad invalidation for nth-child filters 2026-06-12 15:13:29 +02:00
StructuralMutationInvalidator.h LibWeb: Avoid broad invalidation for nth-child filters 2026-06-12 15:13:29 +02:00
StyleInvalidator.cpp LibWeb: Avoid broad invalidation for nth-child filters 2026-06-12 15:13:29 +02:00
StyleInvalidator.h LibWeb: Move StyleInvalidator into CSS invalidation 2026-04-29 15:47:23 +02:00