ladybird/Libraries
Andreas Kling 0c0650e60a LibWeb: Implement more of the "script-blocking style sheet" mechanism
The basic idea is that style sheets can block script execution under
some circumstances. With this commit, we now handle the simplest cases
where a parser-inserted link element gets to download its style sheet
before script execution continues.

This improves performance on Speedometer 3 where JavaScript APIs that
depend on layout results (like Element.scrollIntoView()) would get
called too early (before the relevant CSS was downloaded), and so we'd
perform premature layout work. This work then had to be redone after
downloading the CSS anyway, wasting time.

Note that our Text/input/link-re-enable-crash.html test had to be
tweaked after these changes, since it relied on the old, incorrect,
behavior where scripts would run before downloading CSS.
2025-04-20 14:54:21 +02:00
..
LibCompress LibCompress: Refactor deflate de/compressor using zlib 2025-03-19 13:46:50 +01:00
LibCore LibCore: Remove URL validity check for parsing URL's 2025-04-19 07:18:43 -04:00
LibCrypto Everywhere: Remove sv suffix from format string literals 2025-04-08 20:00:18 -04:00
LibDevTools LibDevTools+LibWebView+WebContent: Report exceptions to DevTools 2025-03-27 14:14:02 +00:00
LibDiff Everywhere: Remove sv suffix from format string literals 2025-04-08 20:00:18 -04:00
LibDNS LibCore: Don't discard subsequent results in Socket::resolve_host 2025-02-28 15:14:35 +01:00
LibFileSystem LibCore: Add S_ISDIR, S_ISREG to System.h on Windows 2025-02-12 18:42:05 -07:00
LibGC LibGC: Allow move-assigning RootVector instances 2025-04-19 02:03:43 +02:00
LibGfx LibWeb: Keep harfbuzz hb_buffer instead of reallocating every time 2025-04-19 01:14:02 +02:00
LibHTTP LibURL: Rename 'cannot have a base URL' to 'has an opaque path' 2025-04-06 08:24:54 -04:00
LibIDL LibIDL+LibWeb: Begin support for async iterator in IDL 2025-04-14 17:43:11 -04:00
LibImageDecoderClient Everywhere: Make TransportSocket non-movable 2025-04-09 15:27:52 +02:00
LibIPC LibIPC: Use AllocatingMemoryStream in TransportSocket send queue 2025-04-15 18:48:53 +02:00
LibJS LibJS: Use premade shape when creating mapped arguments objects 2025-04-19 01:14:02 +02:00
LibLine LibLine: Use AK::Time instead of gettimeofday for history entries 2025-02-12 19:13:49 -07:00
LibMain
LibMedia Everywhere: Remove unused private fields 2025-04-04 12:40:07 +02:00
LibRegex LibRegex: Avoid hashing the state hashes again 2025-04-18 17:09:27 +02:00
LibRequests Everywhere: Make TransportSocket non-movable 2025-04-09 15:27:52 +02:00
LibRIFF
LibSyntax
LibTest LibTest: Ensure other time statistic doesn't underflow 2025-04-10 11:17:06 +02:00
LibTextCodec AK+LibTextCodec: Stop using Utf16View endianness override 2025-04-16 10:04:50 +02:00
LibThreading LibThreading: Clean up pthread mutex attributes and mutex itself 2025-02-20 15:04:50 -07:00
LibTLS LibTLS: Call close() when we receive SSL_ERROR_ZERO_RETURN 2025-04-14 21:07:42 +02:00
LibUnicode LibUnicode: Avoid rejecting end-of-text position as a valid boundary 2025-04-11 15:30:17 -04:00
LibURL LibURL: Remove URL's valid state 2025-04-19 07:18:43 -04:00
LibWasm LibWasm: Store function references' source module in RefPtr to const 2025-04-16 10:41:44 -06:00
LibWeb LibWeb: Implement more of the "script-blocking style sheet" mechanism 2025-04-20 14:54:21 +02:00
LibWebSocket LibWebSocket: Remove meaningless const&& Message constructor 2025-03-09 11:14:20 -04:00
LibWebView LibWebView: Remove uneeded URL valdity check in CookieJar 2025-04-19 07:18:43 -04:00
LibXML LibXml: Notify listener when doctype is parsed 2025-01-20 14:48:19 +01:00