ladybird/Libraries
Andreas Kling c746bd5049 LibWeb: Avoid needless :has() descendant fanout
When an element was affected by :has() in subject position,
pending :has() mutation invalidation also applied the pseudo-class
invalidation plan for that element. If the same element had ever been
observed in a non-subject :has() selector, that plan could invalidate
the element's whole descendant subtree even when the mutation could
only require the subject element itself to recompute style.

Keep subject-position :has() invalidation to the element itself, and
run the descendant fanout only for non-subject involvement after the
existing mutation feature filter says that fanout may be affected.
Track the strongest invalidation applied to each anchor, so a later
batched mutation can still upgrade earlier anchor-only work to a
descendant fanout.

Extend the filter to treat known state pseudo-classes as concrete
mutation features, so a :hover mutation does not conservatively match
unrelated selectors such as :has(dialog:modal).

Scope boundary selectors are kept conservative where needed: when an
@scope boundary contains :has(), the scope root's match can activate or
deactivate style rules for descendants, so it still records descendant
involvement.

Add coverage for unrelated hover and batched mutation cases on elements
whose ancestors have both subject and non-subject :has() involvement,
ensuring descendant no-op recomputation stays bounded without dropping
required descendant fanout.
2026-06-08 17:16:18 +02:00
..
LibCompress Meta: Enable exit-time destructor warnings for libraries 2026-06-04 19:20:49 +02:00
LibCore LibCore: Tighten EventLoop current-loop checks 2026-06-05 09:18:39 +02:00
LibCrypto LibCrypto: Support EC compressed point format (0x02/0x03) 2026-05-12 13:58:38 +02:00
LibDatabase Meta: Move most dependency checks to check_for_dependencies.cmake 2026-04-20 16:41:29 -06:00
LibDevTools LibWeb+LibDevTools: Link style rules to CSS sources 2026-06-04 20:54:33 +01:00
LibDiff CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
LibDNS LibWeb: Use direct references to main event loops 2026-06-05 09:18:39 +02:00
LibFileSystem LibFileSystem: Preserve copy flags when recursing into directories 2026-04-13 12:00:52 +02:00
LibGC Meta: Enable exit-time destructor warnings for libraries 2026-06-04 19:20:49 +02:00
LibGfx LibGfx: Fix misaligned u32 store in BMP RLE24 decompression 2026-06-08 13:43:21 +02:00
LibHTTP LibWeb: Preserve JS bytecode in memory cache 2026-06-06 09:15:09 +02:00
LibImageDecoderClient LibImageDecoderClient: Remove sync id fetch from async decode request 2026-02-28 00:04:06 -06:00
LibIPC LibIPC: Remove unused Stub name member 2026-05-26 09:02:03 +02:00
LibJS LibSyntax+LibJS+LibWebView: Port the syntax highlighter to UTF-8 2026-06-06 18:42:18 +02:00
LibMain AK: Expose helpers to invoke Windows runtime config directly in main() 2025-10-29 21:07:52 -06:00
LibMedia LibMedia: Implement audio time stretching with WSOLA 2026-06-06 19:58:17 -05:00
LibRegex LibURL: Implement URLPattern in Rust 2026-05-28 09:27:41 +02:00
LibRequests LibRequests+RequestServer: Send oversized ws frames via shared memory 2026-05-27 09:52:34 +02:00
LibSync LibSync: Implement ConditionVariable::wait_for(Duration) 2026-05-22 09:30:10 -05:00
LibSyntax LibSyntax+LibJS+LibWebView: Port the syntax highlighter to UTF-8 2026-06-06 18:42:18 +02:00
LibTest LibGC: Defer per-block madvise to a global background worker 2026-05-07 20:09:05 +02:00
LibTextCodec LibJS: Hash encoded source identity in bytecode cache 2026-06-03 14:11:23 +02:00
LibThreading LibThreading: Remove BackgroundAction 2026-06-05 20:00:12 +02:00
LibTLS Meta: Move most dependency checks to check_for_dependencies.cmake 2026-04-20 16:41:29 -06:00
LibUnicode LibUnicode: Remove unused UTF-32 segmenter support 2026-06-06 18:42:18 +02:00
LibURL LibURL: Advance past the '@' delimiter after batch-parsing userinfo 2026-06-07 11:29:43 +01:00
LibWasm LibWasm: Refer to cranelift-compiler by relative path and env override 2026-06-05 19:59:03 +02:00
LibWeb LibWeb: Avoid needless :has() descendant fanout 2026-06-08 17:16:18 +02:00
LibWebSocket LibWebSocket: Time out stalled close handshakes 2026-05-05 19:14:29 +02:00
LibWebView LibWeb+UI/AppKit: Implement macOS IME support 2026-06-08 10:23:14 +09:00
LibXML Meta: Move most dependency checks to check_for_dependencies.cmake 2026-04-20 16:41:29 -06:00
CMakeLists.txt Meta: Remove obsolete Lagom host-tools build 2026-06-08 01:11:40 +02:00
RustAllocator.rs Rust: Set import granularity to Item 2026-05-28 06:52:18 +02:00