:has() style Invalidation prototyping details CL: https://chromium-review.googlesource.com/c/chromium/src/+/2725907 Binary: https://cloud.igalia.com/s/roLob25tsTzdKTa 1. Diagrams 1.1. Class Diagram 1.2. Sequence Diagram 1.2.1. Collect features from selector 1.2.1.1. Add features from <complex-selector> 1.2.1.2. Extract features from <complex-selector> 1.2.1.3. Ensure simple feature 1.2.1.4. Ensure compound feature 1.2.1.5. Initialize / Collect / Get Argument Template / Finalize of has compound feature collect 1.2.1.6. Initialize / Collect / Get Argument Template / Finalize of has argument feature collect 1.2.1.7. Index features 1.2.2. Find target elements of change and invalidate those 1.2.2.1. Invalidate for Id changed 1.2.2.2. Check upward subtree of changed element 1.2.2.3. InvalidateDownward