ladybird/Userland/Libraries/LibWeb
Andreas Kling 1f166b3a15 LibWeb: Don't re-sort StyleSheetList on every new sheet insertion
This was causing a huge slowdown when loading some pages with weirdly
huge number of style sheets. For example, amazon.com has over 200 style
elements, which meant we had to resort the StyleSheetList 200 times.
(And sorting itself was slow because it has to compare DOM positions.)

Instead of sorting, we now look for the correct insertion point when
adding new style sheets, and we start the search from the end, which is
where style sheets are typically added in the vast majority of cases.

This removes a 600ms time sink when loading Amazon on my machine! :^)
2023-03-30 14:12:07 +02:00
..
ARIA Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Bindings LibWeb: Add a list of the entry names in the PerformanceTiming interface 2023-03-23 21:00:43 +00:00
Cookie Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Crypto LibWeb: Move code that generates uuid into separate function 2023-03-16 13:17:37 -04:00
CSS LibWeb: Don't re-sort StyleSheetList on every new sheet insertion 2023-03-30 14:12:07 +02:00
DOM LibWeb: Make the Node.compareDocumentPosition() return value enum public 2023-03-30 14:12:07 +02:00
DOMParsing LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
Encoding LibWeb/WebIDL: Store SimpleException message as a String{,View} variant 2023-03-03 19:50:36 +00:00
Fetch LibWeb: Support loading file:// URLs via fetch (through ResourceLoader) 2023-03-22 23:34:32 +00:00
FileAPI LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
Geometry LibWeb: Remove FIXME for existing [Default] object toJSON()functions 2023-03-23 21:00:43 +00:00
HighResolutionTime LibWeb: Implement performance.mark and performance.clearMarks 2023-03-23 21:00:43 +00:00
HTML LibWeb: Remove redundant invocation of children changed in HTMLParser 2023-03-30 11:10:02 +02:00
Infra LibWeb: Use equals_ignoring_ascii_case() in infra helper 2023-03-10 13:15:44 +01:00
IntersectionObserver LibWeb: Make factory method of IntersectionObserver fallible 2023-02-22 09:55:33 +01:00
Layout LibWeb: Resolve percentage vertical-align values against line-height 2023-03-29 18:38:29 +02:00
Loader LibWeb: Run XML parser input through encoding decoder 2023-03-26 15:48:45 +01:00
MimeSniff LibWeb/Infra: Rename to_ascii_{{lower,upper}_case => {lower,upper}case} 2023-03-04 22:42:42 +00:00
NavigationTiming LibWeb: Add a list of the entry names in the PerformanceTiming interface 2023-03-23 21:00:43 +00:00
Page WebContent+Everywhere: Add a WebContent IPC to activate a tab 2023-03-21 09:39:49 +00:00
Painting LibWeb: Remove now-unused includes from StyleValue.cpp 2023-03-25 16:56:04 +00:00
PerformanceTimeline LibWeb: Introduce Performance Timeline and its Performance functions 2023-03-23 21:00:43 +00:00
Platform LibWeb: Convert Platform::Timer to JS::SafeFunction 2023-03-07 11:51:12 +00:00
ReferrerPolicy LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
RequestIdleCallback LibWeb/HTML: Port Window.requestIdleCallback() to IDL 2023-03-07 23:33:34 +00:00
ResizeObserver LibWeb: Make factory method of ResizeObserver::ResizeObserver fallible 2023-02-22 09:55:33 +01:00
Scripts LibWeb: Store stylesheet sources as StringViews 2023-02-19 00:51:16 +01:00
SecureContexts Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Selection LibWeb: Make factory method of Selection::Selection fallible 2023-02-22 09:55:33 +01:00
Streams LibWeb: Propagate error in factory method of Streams::ReadableStream 2023-02-22 09:55:33 +01:00
SVG LibWeb: Split PercentageStyleValue out of StyleValue.{h,cpp} 2023-03-25 16:56:04 +00:00
Tests
UIEvents LibWeb: Initialize static web strings during main-thread VM creation 2023-03-18 19:50:45 +01:00
URL LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
UserTiming LibWeb: Implement performance.mark and performance.clearMarks 2023-03-23 21:00:43 +00:00
WebAssembly LibWeb+LibWasm: Implement and use the "reset the Memory buffer" steps 2023-03-29 07:16:37 +02:00
WebDriver LibWeb/WebDriver: Wait for more data to arrive if request is incomplete 2023-03-26 17:56:17 +02:00
WebGL LibWeb: Port WebGLContextEvent to new String 2023-03-05 18:25:59 +00:00
WebIDL LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
WebSockets LibWeb: Port MessageEvent to new String 2023-03-05 18:25:59 +00:00
XHR LibWeb: Create the correct error objects in XHR::handle_errors 2023-03-23 20:01:38 +01:00
XML LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CMakeLists.txt LibWeb: Implement custom element name validation 2023-03-28 07:18:09 -04:00
Dump.cpp LibWeb: Support the :scope pseudo class 2023-03-21 10:45:19 +01:00
Dump.h LibWeb+Browser+Ladybird: Add menu action to dump paint tree 2023-03-18 20:23:35 +01:00
FontCache.cpp LibWeb: Scale the font when painting the text on buttons 2023-03-15 23:29:00 +01:00
FontCache.h LibWeb: Scale the font when painting the text on buttons 2023-03-15 23:29:00 +01:00
Forward.h LibWeb: Implement CRC2D.imageSmoothingEnabled 2023-03-29 22:48:04 +02:00
idl_files.cmake LibWeb: Implement performance.mark and performance.clearMarks 2023-03-23 21:00:43 +00:00
Namespace.cpp LibWeb: Initialize static web strings during main-thread VM creation 2023-03-18 19:50:45 +01:00
Namespace.h LibWeb: Initialize static web strings during main-thread VM creation 2023-03-18 19:50:45 +01:00
PixelUnits.h LibWeb: Use type-correct hashing and formatting functions for pixels 2023-01-21 10:36:14 +01:00
TreeNode.h LibJS+LibWeb: Move headers around to allow including Value from Cell 2023-01-29 00:02:45 +00:00