Ladybird browser update (May 2026)

Lobsters Hottest Products

Summary

The May 2026 update for Ladybird browser brings major improvements in real-world site compatibility (e.g., passes Cloudflare Turnstile, enables MSE), responsiveness (async scrolling, JS bytecode caching, WASM JIT with Cranelift, incremental sweeping), and infrastructure (Rust HTML parser, ad-blocking via adblock-rust, CSS container queries).

<p><a href="https://lobste.rs/s/giob6a/ladybird_browser_update_may_2026">Comments</a></p>
Original Article
View Cached Full Text

Cached at: 06/05/26, 07:07 AM

TL;DR: The Ladybird browser’s May 2026 update brings major improvements in real‑world website compatibility, scrolling responsiveness, and platform infrastructure, including passing Cloudflare Turnstile, enabling MSE, an asynchronous scroll compositor, JavaScript bytecode caching, WASM JIT (Cranelift), incremental sweeping, and other key enhancements. ## Sponsors and Acknowledgements This month’s update starts with thanks to our sponsors. Ladybird is entirely supported by sponsorships and donations from individuals and companies. This month we welcome two new sponsors: **Code Rabbit** ($10,000) and **Wheelofnames.com** ($1,000). Thanks for their support – we’ll try opening those sites later in the demo. ## Real‑World Website Compatibility ### Passing Cloudflare Turnstile Cloudflare Turnstile is an anti‑bot mechanism. Previously, Ladybird was blocked because it looked like a bot. After years of accumulating web compatibility and engine correctness, Turnstile now recognizes us as a legitimate browser. This is not the result of a single change, but the sum of many small fixes. Special thanks to the Cloudflare team for their help. ### Media Source Extensions (MSE) Enabled by Default Streaming websites can now supply media data in chunks via JavaScript. Previously, this couldn’t be enabled by default due to an age‑based data eviction policy, which has now been fixed. Seeking forward on YouTube is very fast, and 4K video playback is supported (performance still needs optimization, but the data flow works correctly). ### Other Site Fixes - **TradingView**: Charts now display correctly (involved Service Worker and Canvas translucent alpha accumulation issues; colors are now correct). - **Discord**: Numerous compatibility fixes. - **Shopify**: Overflow issues fixed. - **Reddit** and **Hacker News**: Ongoing improvements. - Many more sites are being continuously fixed in preparation for the Alpha release. ## Responsiveness Improvements ### Asynchronous Scrolling A new **compositor process** has been introduced, sitting between the UI and web content and dedicated to handling scrolling. When a scroll wheel event is received, the compositor immediately communicates with the UI process and updates the frame without waiting for JavaScript to finish executing. Scroll bar and trackpad operations become smooth. In the IMDb example, enabling asynchronous scrolling results in smooth, lag‑free scrolling. The compositor also manages the GPU context (future direction: a single GPU context shared across the entire browser to save resources). ### JavaScript Bytecode Cache Bytecode is stored on disk alongside the HTTP resource cache. On a cache hit (hot load), the bytecode is memory‑mapped and executed directly without parsing or compilation; multiple tabs share the same bytecode. On a cold load, the main thread handles page tasks while a background thread parses and compiles the top‑level code. Once done, it hands off to the main thread, and the background continues compiling function bodies. After compilation, the bytecode is written to disk and replaces the heap‑resident temporary representation via a file‑backed memory mapping, allowing sharing across processes. If a function that hasn’t been compiled yet is needed during background compilation, the main thread compiles it lazily on demand. ### WebAssembly JIT (Cranelift) WebAssembly is compiled to native code on the fly using **Cranelift**. Compilation happens in a separate process; after generating the executable, it is mapped into the web content process memory. The CoreMark WASM benchmark shows an approximately **8×** improvement. ### Incremental Sweeping In the classical mark‑sweep GC, the sweep phase is now split into small chunks of at most **5 milliseconds** each, interleaved with JavaScript execution. GC pause times are reduced, resulting in less visual stuttering. Additionally, memory return operations have been moved to a background decommit thread, no longer blocking the main thread. ## Platform Infrastructure ### HTML Parser Rewritten in Rust The tokenizer, HTML tree builder, and preload scanner have all been ported to Rust, as part of using a memory‑safe language for untrusted data input. After validation on about 7,000 websites, the output DOM is identical to the C++ version, and it unexpectedly performs about **10%** faster than the old parser. ### Content Blocking (adblock‑rust) We adopted Brave’s open‑source **adblock‑rust** library, which supports the ABP / EasyList format. For network requests, the URL and metadata are passed, and the rules decide whether to block or allow. At the same time, style rule filtering is performed to implement CSS element hiding, eliminating the layout holes that occurred in the old approach where only network requests were blocked without modifying CSS. The settings UI is still basic, but the infrastructure is in place. ### CSS Container Queries As part of ongoing engine work, CSS Container Queries are now supported, accommodating the growing number of websites that use them. --- Source: Ladybird browser update (May 2026) (https://www.youtube.com/watch?v=GZoLy5e8y-4)

Similar Articles

LadybirdBrowser/ladybird

GitHub Trending (daily)

Ladybird is a truly independent, pre-alpha open-source web browser built on a novel engine that uses LibWeb, LibJS, and other components inherited from SerenityOS, aiming for a complete, standards-based browser for the modern web.

Changing How We Develop Ladybird

Lobsters Hottest

Ladybird browser is closing public pull requests and restricting code changes to project maintainers only, citing that AI tools have made it harder to assess contributor trustworthiness and that the project needs tighter security as it approaches an alpha release.

Quoting Andreas Kling

Simon Willison's Blog

Ladybird browser will no longer accept public pull requests due to the ease of generating code with AI, requiring that contributors take responsibility for changes.