1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-10 18:10:56 +09:00
ladybird/Libraries/LibWeb
Andreas Kling 096eed35cc LibWeb: Avoid O(n^2) traversal in play-or-cancel-animations logic
The play_or_cancel_animations_after_display_property_change() helper
was being called by Node::inserted() and Node::removed_from() and then
recursing into the shadow-including subtree.

This had quadratic complexity since inserted() and removed_from() are
themselves already invoked recursively for everything in the
shadow-including subtree.

Only one caller of this API actually needed the recursive behavior,
so this patch moves that responsibility to the caller and puts the logic
in style recomputation instead.

1.02x speedup on Speedometer's TodoMVC-jQuery.
2025-05-11 20:22:17 +02:00
..
Animations LibWeb: Implement the transition-behavior CSS property 2025-05-02 11:07:19 +01:00
ARIA LibWeb: Implement caching of reflected element array attributes 2025-04-26 17:29:38 -04:00
Bindings LibJS: Cache PutById to setters in the prototype chain 2025-05-05 15:21:43 +02:00
Clipboard LibWeb: Implement navigator.clipboard.read 2025-05-02 17:46:16 -04:00
Compression LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
ContentSecurityPolicy LibWeb: Remove Web::Infra ASCII case conversion methods 2025-05-04 15:59:17 +02:00
Cookie LibWeb: Remove Web::Infra ASCII case conversion methods 2025-05-04 15:59:17 +02:00
CredentialManagement LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
Crypto LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
CSS LibWeb: Dump CSSDescriptors in a generic way 2025-05-08 16:21:32 +01:00
DOM LibWeb: Avoid O(n^2) traversal in play-or-cancel-animations logic 2025-05-11 20:22:17 +02:00
DOMURL AK+Everywhere: Recognise that surrogates in utf16 aren't all that common 2025-04-23 07:56:02 -06:00
Editing LibWeb: Assign new wrapped node list to container for insertParagraph 2025-05-07 16:11:31 +02:00
Encoding LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
EncryptedMediaExtensions LibWeb: Improve Enum generation in IDLGenerator 2025-03-04 16:35:04 +00:00
EntriesAPI LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
EventTiming LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
Fetch LibWeb: Use the correct target realm to tee a stream 2025-04-30 09:30:15 -04:00
FileAPI LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
Geometry LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
HighResolutionTime LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
HTML Libweb: Invalidate layout for the value-attribute of li-elements 2025-05-11 01:14:31 +02:00
IndexedDB LibWeb/IDB: Implement IDBObjectStore::clear 2025-05-08 14:13:21 +01:00
Infra LibWeb: Remove Web::Infra ASCII case conversion methods 2025-05-04 15:59:17 +02:00
Internals LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
IntersectionObserver LibWeb: Convert trivial attributes to FrozenArray 2025-04-25 16:43:43 +02:00
Layout LibWeb: Overlap float space and left margins for all shared ancestors 2025-05-09 14:13:02 +02:00
Loader LibWeb: Allow CORS requests from opaque origins to resource:// URLs 2025-04-23 19:58:58 -04:00
MathML LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
MediaCapabilitiesAPI LibWeb: Add missing WebIDL/Types include to MediaCapabilities.h 2025-05-09 23:14:27 -06:00
MediaSourceExtensions LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
MimeSniff LibWeb: Remove Web::Infra ASCII case conversion methods 2025-05-04 15:59:17 +02:00
MixedContent
NavigationTiming LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
Page LibWeb+LibWebVew+WebContent+UI: Add IPC to retrieve the system clipboard 2025-05-02 17:46:16 -04:00
Painting LibWeb: Use efficient background repeat path for either direction 2025-05-09 21:37:48 +02:00
PerformanceTimeline LibWeb: Update FIXMEs about FrozenArray with more up-to-date description 2025-04-25 16:43:43 +02:00
PermissionsPolicy LibWeb: Remove OOM handling from the AutoplayAllowlist 2025-03-30 16:18:57 +01:00
Platform LibWeb: Exit the current process when event loop quits during spin_until 2025-04-30 11:12:23 -04:00
ReferrerPolicy
RequestIdleCallback LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
ResizeObserver LibWeb: Convert trivial attributes to FrozenArray 2025-04-25 16:43:43 +02:00
ResourceTiming LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
SecureContexts Everywhere: Use URL::about_XXX factory functions 2025-02-15 17:05:55 +00:00
Selection LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
ServiceWorker LibWeb/ServiceWorker: Implement ServiceWorkerGlobalScope event handlers 2025-04-25 11:02:53 +02:00
SRI LibWeb: Fix SRI handling of badly-formatted strings 2025-05-06 13:02:58 -04:00
StorageAPI LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
Streams LibWeb: Use the correct target realm to tee a stream 2025-04-30 09:30:15 -04:00
SVG LibWeb/SVG: Remove remaining user of of old try_resolve_url_to() 2025-04-30 17:38:38 +01:00
TrustedTypes LibWeb: Update Document.write spec steps 2025-02-25 15:19:38 +01:00
UIEvents LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
URLPattern LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
UserTiming LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebAssembly LibWeb/WebAssembly: Throw appropriate errors as defined by the spec 2025-05-08 03:35:11 -06:00
WebAudio Everywhere: Correct "FIMXE" typo 2025-04-30 17:38:38 +01:00
WebDriver LibWeb: Translate special WebDriver keys for backspace, tab and return 2025-05-08 07:06:02 -04:00
WebGL LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebIDL LibJS: Cache PutById to setters in the prototype chain 2025-05-05 15:21:43 +02:00
WebSockets LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
WebVTT LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
Worker LibWeb: Fix typos - act II 2025-04-09 15:05:20 +01:00
XHR LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
XLink
XML LibWeb/XML: Treat declared namespaces as valid for attributes 2025-04-15 09:39:19 +01:00
CMakeLists.txt LibWeb/CSS: Extract a CSSDescriptors base class 2025-05-08 16:21:32 +01:00
Dump.cpp LibWeb: Add dumping code for keyframe/keyframes rules 2025-05-08 16:21:32 +01:00
Dump.h LibWeb: Add dumping code for keyframe/keyframes rules 2025-05-08 16:21:32 +01:00
Forward.h LibWeb/CSS: Extract a CSSDescriptors base class 2025-05-08 16:21:32 +01:00
idl_files.cmake LibWeb: Begin implementing SharedWorker 2025-05-02 17:48:02 -04:00
InvalidateDisplayList.h
Namespace.cpp
Namespace.h
PixelUnits.cpp
PixelUnits.h LibWeb: Clamp layout content sizes to a max value instead of crashing 2025-02-05 18:28:55 +01:00
TraversalDecision.h
TraversalOrder.h
TreeNode.h LibWeb: Use as_if<T> in TreeNode methods 2025-05-02 11:02:20 +02:00