ladybird/Tests
InvalidUsernameException 4ae31dc777 LibWeb: Invalidate layout tree of parent when replacing CharacterData
When replacing the data in `CharacterData`, we were only invalidating
text-dependent cache and layout of the layout node(s) corresponding to
that `CharacterData`. This is not sufficient: With `::first-letter`
styling, `TextSliceNode`s are being created for the first letter and the
remainder of the text. So, contrary to regular `TextNode`s, these store
offsets into the text data determined while building the layout tree.
Subsequently these become stale when only invalidating layout, but not
the layout tree. Using such stale offsets with updated text data leads
to crashes in `TextNode::compute_text_for_rendering()` if the text got
shorter and incorrect behavior if it got longer.

To fix this, invalidate the layout tree of the parent of the affected
`TextSliceNode`s, causing a rebuild that creates new slice nodes with
the updated data.

This fixes a crash when typing in the search box on
https://search.brave.com/ where a first-letter style is used to
capitalize the first letter of the search suggestions descriptions. This
crash was a regression from b67d73a661.
2026-06-02 11:09:52 +01:00
..
AK AK: Fix rvalue Variant downcast to variant aliases 2026-05-30 11:22:08 +02:00
ClangPlugins LibGC: Default-construct RootHashMap from the global heap 2026-05-20 20:37:55 +02:00
LibCompress CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
LibCore LibCore: Add immutable byte storage for mapped ranges 2026-05-16 08:13:35 +02:00
LibCrypto LibCrypto: Support EC compressed point format (0x02/0x03) 2026-05-12 13:58:38 +02:00
LibDatabase LibDatabase: Allow String values to contain embedded null bytes 2026-02-14 10:25:33 -05:00
LibDevTools LibDevTools+LibWebView: Support DevTools URL navigation 2026-06-01 15:09:25 +01:00
LibDiff AK: Remove unused include from MemoryStream 2026-02-17 12:38:51 +00:00
LibDNS LibDNS: Resolve the .localhost special-use domain to loopback 2026-05-29 22:23:33 +02:00
LibGC LibGC: Introduce ConservativeHashTable 2026-05-28 21:16:23 +02:00
LibGfx LibGfx: Remove TinyVG image decoding 2026-05-31 19:20:59 +02:00
LibHTTP LibWeb+LibHTTP: Consult HSTS preload list before dynamic-store IPC 2026-05-29 22:23:33 +02:00
LibIPC LibIPC: Don’t dispatch queued messages when sync IPC peer disconnects 2026-05-24 10:00:31 +02:00
LibJS Tests/LibJS: Remove unneeded GC::Root use in PrimitiveString test 2026-05-29 17:21:17 +02:00
LibMedia Tests: Add a test set for file buffered ranges 2026-05-28 10:30:20 -05:00
LibRegex LibRegex: Inline \w and \d ranges in legacy positive char classes 2026-04-21 16:36:38 +02:00
LibTest CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
LibTextCodec LibTextCodec: Stop buffering invalid UTF-8 tails 2026-05-18 14:08:22 +02:00
LibThreading LibThreading/LibSync: Split out sync primitives 2026-05-08 18:58:35 -05:00
LibTLS Meta: Rename and merge some lagom_* and ladybird_* 2026-05-05 22:08:24 +02:00
LibUnicode LibUnicode: Add an ASCII fast path for line break segmentation 2026-05-05 18:59:07 +02:00
LibURL LibURL: Replace WTF-8 surrogates before Rust URL parsing 2026-05-30 01:41:34 +02:00
LibWasm LibJS: Compact Shape property table to a sorted flat array 2026-05-14 19:59:40 +02:00
LibWeb LibWeb: Invalidate layout tree of parent when replacing CharacterData 2026-06-02 11:09:52 +01:00
LibWebView UI: Shorten web URLs in location fields 2026-05-31 19:20:59 +02:00
LibXML CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
Meta Meta: Handle juxtaposition in CSS value parsing code generation 2026-05-13 11:26:20 +01:00
CMakeLists.txt Tests: Add a LibDevTools test suite 2026-05-27 08:55:02 +01:00