ladybird/Libraries/LibWeb
Aliaksandr Kalenik d1fbb7b51e LibWeb: Invalidate less elements affected by CSS custom properties
Before this change, whenever element's attributes changed, we would add
a flag to "pending invalidation", indicating that all descendants whose
style uses CSS custom properties needed to be recomputed. This resulted
in severe overinvalidation, because we would run invalidation regardless
of whether any custom property on affected element actually changed.

This change takes another approach, and now we decide whether
descendant's style needs to be recomputed based on whether ancestor's
style recomputation results in a change of custom properties, though
this approach adds a little overhead to style computation as now we have
to compare old vs new hashmap of custom properties.

This brings substantial improvement on discord and x.com where, before
this change, advantage of using invalidation sets was lost and we had
to recompute all descendants, because almost all of them use custom
properties.
2025-07-30 11:06:05 +02:00
..
Animations Everywhere: Use HashMap::update() where applicable 2025-07-25 16:22:06 +02:00
ARIA
Bindings LibWeb+LibUnicode+WebContent: Port DOM:CharacterData to UTF-16 2025-07-24 19:00:20 +02:00
Clipboard
Compression
ContentSecurityPolicy LibWeb/CSP: Implement the child-src directive 2025-07-19 17:15:21 +12:00
Cookie
CredentialManagement
Crypto LibWeb: Don't import raw X25519 key of incorrect length 2025-07-26 10:43:16 -06:00
CSS LibWeb: Invalidate less elements affected by CSS custom properties 2025-07-30 11:06:05 +02:00
DOM LibWeb: Invalidate less elements affected by CSS custom properties 2025-07-30 11:06:05 +02:00
DOMURL
Editing LibWeb: Port node text content to UTF-16 2025-07-28 18:30:50 +02:00
Encoding AK+LibJS: Extract some UTF-16 helpers for use in an outside class 2025-07-03 09:51:56 -04:00
EncryptedMediaExtensions
EntriesAPI
EventTiming
Fetch LibWeb: Make ESO "fetch group" weakly reference the fetch records 2025-07-29 20:00:17 -04:00
FileAPI AK+LibJS+LibWeb+LibRegex: Replace AK::Utf16Data with AK::Utf16String 2025-07-18 12:45:38 -04:00
Gamepad LibWeb: Stub Navigator.getGamepads() 2025-07-22 11:55:29 -04:00
Geolocation
Geometry LibWeb: Ensure cast to double for double matrix 2025-07-28 09:15:23 +02:00
HighResolutionTime LibWeb: Only expose performance.{timing,navigation} on Window 2025-07-25 11:46:58 +02:00
HTML LibWeb: Make ESO "fetch group" weakly reference the fetch records 2025-07-29 20:00:17 -04:00
IndexedDB
Infra LibWeb: Port node text content to UTF-16 2025-07-28 18:30:50 +02:00
Internals LibWeb: Send a beforeinput event for pasting 2025-07-23 22:04:45 +02:00
IntersectionObserver
Layout LibWeb: Support CSS content property images (and lists, too!) 2025-07-28 22:46:27 +02:00
Loader LibWeb: Restore flags to prevent formatting timestamps as local time 2025-06-25 23:41:04 +02:00
MathML
MediaCapabilitiesAPI
MediaSourceExtensions
MimeSniff
MixedContent
NavigationTiming LibWeb: Only expose performance.{timing,navigation} on Window 2025-07-25 11:46:58 +02:00
Page LibWeb+UI: Add an explicit IPC to handle mouse leave events 2025-07-28 21:26:33 +02:00
Painting LibWeb: Allow ImageProvider subclasses to visit additional GC edges 2025-07-28 22:46:27 +02:00
PerformanceTimeline
PermissionsPolicy
Platform
ReferrerPolicy
RequestIdleCallback
ResizeObserver LibWeb: Unregister ResizeObserver from Document when it has no targets 2025-07-30 00:54:57 +02:00
ResourceTiming
SecureContexts
Selection LibWeb: Port DOM::Range stringification to UTF-16 2025-07-25 18:16:22 +02:00
ServiceWorker
SRI
StorageAPI
Streams LibWeb: Align specification step text with current specification 2025-07-20 12:30:43 +12:00
SVG LibWeb: Allow ImageProvider subclasses to visit additional GC edges 2025-07-28 22:46:27 +02:00
TrustedTypes
UIEvents LibWeb: Port document.execCommand and InputEvent to UTF-16 2025-07-26 00:40:06 +02:00
URLPattern
UserTiming
WebAssembly LibWeb: Support wasm module instantiation using a global address 2025-07-25 15:35:27 +02:00
WebAudio LibWeb: Add BaseAudioContext::createScriptProcessor() 2025-07-25 11:48:04 +02:00
WebDriver LibWeb: Port HTMLElement innerText/outerText to UTF-16 2025-07-28 18:30:50 +02:00
WebGL LibWeb+LibGfx: Replace BackingStore with PaintingSurface 2025-07-04 16:12:47 +02:00
WebIDL LibIDL+LibWeb: Support UTF-16 USVString 2025-07-26 00:40:06 +02:00
WebSockets LibWeb: Fix acceptable WebSocket close code range 2025-07-27 15:36:34 +02:00
WebVTT
Worker LibWeb+WebWorker: Use IPC mechanics for structured serialization 2025-07-18 10:09:02 -04:00
XHR LibWeb: Include submitter name and value when constructing FormData 2025-07-15 20:49:39 +02:00
XLink
XML LibWeb+LibUnicode+WebContent: Port DOM:CharacterData to UTF-16 2025-07-24 19:00:20 +02:00
CMakeLists.txt LibWeb: Add BaseAudioContext::createScriptProcessor() 2025-07-25 11:48:04 +02:00
Dump.cpp LibWeb: Port rendered text to UTF-16 2025-07-25 18:16:22 +02:00
Dump.h
Forward.h LibWeb: Fix scroll state refresh in cached display list for iframes 2025-07-26 11:53:21 -04:00
idl_files.cmake LibWeb: Add BaseAudioContext::createScriptProcessor() 2025-07-25 11:48:04 +02:00
InvalidateDisplayList.h
Namespace.cpp
Namespace.h
PixelUnits.cpp
PixelUnits.h
TraversalDecision.h
TraversalOrder.h
TreeNode.h