
Ladybird web browser gains video playback, JS debugging, and downloads that pause & resume
The team behind Ladybird, the independent open-source web browser under development by the Andreas Kling-led SerenityOS project, published its August 2026 progress report last week, detailing a month in which the browser crossed several milestones on its way to becoming a fully standalone web engine. Most notably, Ladybird gained video playback on Twitch and expanded support for additional video formats on YouTube, a significant step for real-world usability. Users also received JavaScript debugging in the browser's DevTools, allowing them to set breakpoints, step through code line by line, and evaluate watch expressions, along with the ability to pause and resume downloads (which survive browser restarts), CSS scroll snap support, and session restore. According to the announcement, downloads now run over four parallel connections where servers permit it.
Beyond features, the announcement describes a deliberate shift in engineering priorities: engine performance went “from occasional attention to a sustained focus”, driven by a new style engine, layout caching, and CSS animations being moved off the main thread, changes that, combined with hidden and occluded windows no longer performing rasterization work, should improve responsiveness and battery life. A significant portion of the codebase also continued migrating to Rust: CSS parsing, computed style computation, and the entire painting pipeline, including display list recording and hit testing, were ported. In each case, the Rust code landed behind an A/B comparison mode that validated output across the full test suite, with the old C++ removed only after reaching zero mismatches; the Rust CSS parser, notably, proved faster than the C++ code it replaced.
Security groundwork also advanced, with the project's “exploit cage” isolation mechanism expanded to cover the JavaScript heap, and a dedicated WebAssembly compiler service introduced. Architectural changes are quietly laying the foundation for future features as well: the DOM was decoupled from its JavaScript wrappers, reducing memory use and enabling the per-”world” wrapper isolation required for browser extension content scripts, a described step toward extension support, while session history and navigation moved into the browser process, a stated prerequisite for eventual site isolation.



