This Month in Ladybird – April 2026

· web ai · Source ↗

TLDR

  • 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.

Original | Discuss on HN