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.
S
Sam Atkins committed
4f8c682c21056cbf02f6c8032b6608fa56b0b247
Parent: 0c633eb