Ladybird merged 333 PRs in April adding inline PDF via pdf.js, GTK4 frontend, speculative HTML parsing, off-thread JS compilation, async DNS, and CSS anchor positioning.
Key Takeaways
Off-thread JS bytecode compilation shifts ~200ms of main-thread work to background threads; Speedometer 2 jumped from 67.7 to 73.6.
Async DNS via LibDNS now runs A/AAAA queries in parallel on a thread pool, eliminating main-thread blocking; O(n²) response drain in RequestServer fixed to O(1).
Speculative HTML parser issues early fetches for scripts, stylesheets, and images while the main parser is blocked, with deduplication against the preload map.
Per-Navigable rasterization puts each iframe on its own thread and is groundwork for sandboxed iframe processes.
Style invalidation optimizations cut Reddit rule cache rebuilds from 13.2s to 3.2s and reduced :has() child-list visits on the Intel ISA PDF from 71k to 1.6k.
Hacker News Comment Review
Commenters broadly want prebuilt binaries; alpha builds are reportedly planned for June, with building locally described as straightforward via the documented script.
Widevine DRM and sites that UA-sniff for Chromium are seen as the structural wall Ladybird must eventually clear, echoing the IE-era lock-in lesson.
The website-as-ROM analogy resonated: fixing one CSS or JS quirk to unblock a specific site mirrors emulator compatibility work.
Notable Comments
@geophph: flags that Strava checks battery level via Navigator.getBattery, a subtle fingerprinting-adjacent API now throwing the correct spec error.