This Month in Ladybird – July 2026

exploraz2 pts0 comments

This Month in Ladybird - July 2026 - Ladybird

This Month in Ladybird — July 2026

Hello friends! In July Ladybird gained private browsing, browser profiles, undo/redo, geolocation, and working WebAudio. Under the hood, we moved our style system and layout engine over to Rust.

Sponsors

Ladybird is entirely funded by companies and individuals who believe in the open web. You can see everyone currently supporting the project on our sponsors page, and we’re grateful to all of them. If you’re interested in sponsoring, please contact us.

Private browsing

Ladybird now has private browsing windows (#10469, #10564). Cookies, storage, history, caches, downloads and address bar suggestions are all routed by privacy, and a page process is only ever wholly private or wholly normal.

Browser profiles

Everything Ladybird stores now lives inside a profile (#10663). A profile owns its own settings, bookmarks, history, cookies and site storage, HTTP caches, etc.

There’s a default profile that we use unless you specify otherwise:

ladybird # uses the `default` profile<br>ladybird --profile work # a named profile, kept between runs<br>ladybird --temporary-profile # a fresh one, deleted on exit

Profiles can run side by side, and the sandbox rules for helper processes are generated per profile so each one can only reach its own files. Launching a profile that’s already running hands the URL to the existing window instead of starting a second copy. On macOS they get distinct Dock badges so you can tell them apart (#10665).

Undo/redo and rich text

Undo/redo now works for editing in contenteditable and text controls, wired up to the Edit menu with the usual shortcuts (#10758). Copy and paste preserves styled text, images, lists and paragraphs (#10770), and the clipboard shortcuts now fire real copy, cut and paste events, which is how editor frameworks implement clipboard support (#10632). Cursor movement also follows visual lines, so the arrow keys behave in wrapped text (#10517).

Editing is one of the least specified corners of the web platform. Nothing written down tells you how many keystrokes should collapse into a single undo step, so the only way to be interoperable is to match what shipping engines already do. We built our expectations by running a giant editing test through other browsers and recording the DOM and cursor positions they ended up with. Fuzzing editing sequences against it turned up several divergences plus a crash of our own.

Geolocation

Ladybird can answer geolocation requests, using CoreLocation on macOS and Qt Positioning on Linux (#9737). It denies location by default until we have a real permissions system, so for now it’s opt-in from settings.

WebAudio

WebAudio gained offline and real-time rendering (#10823, #10780), which is enough to make audio work on Slow Roads, Faster Than Light, and a WebAssembly build of Doom 3.

WebAssembly

WebAssembly got substantially faster this month. The common cases for calls now happen directly instead of going out to a helper, which is worth 20x to 50x on call microbenchmarks (#10719). More operations moved inline for the same reason (#10783).

Here’s Shopify’s Horizon Drive running in Ladybird. The engine, the music, and the sparks when I scrape along a wall are all WebAudio. :^)

Browser UI

Omnibox : when history suggestions changed while you were typing, pressing Enter would sometimes submit the prefix you had typed instead of the completion shown in the bar. Location bar editing is now a single state machine, so pressing Enter always acts on the text being displayed (#10409, #10633). It also learns which result you pick for a given input (#10742), and there’s a “Paste and Go” menu item (#10853).

You can now press Esc to stop an ongoing page load (#10615).

Right-clicking URL-like text gives you the link menu, selecting the URL for you the way Safari does (#10523).

Downloads : Links with the download attribute now download instead of navigating, using the filename they ask for (#10777), clearer progress counters (#10820), and a downloads popover on macOS (#10454).

New tabs open next to the tab that spawned them (#10528).

The screen stays awake while a video plays, on macOS for now (#10066).

macOS dictionary lookup , from the context menu or Force Touch (#10541).

DevTools

You can now launch the Firefox DevTools client straight from Ladybird, instead of starting our server and connecting by hand (#10707). Network request details got filled in too (#10704). (Note: we’re using the Firefox DevTools and their protocol as a stopgap until we have our own.)

CSS

Relative colors from CSS Color 5, for rgb(), hsl(), hwb(), lab(), oklab(), lch(), oklch() and color() (#10389). This is what Discourse-based forums were checking for when they reported Ladybird as unsupported (#10280).

Custom functions : @function evaluation (#10512, #10801).

Style queries : if(style()) (#10383), conditions (#10405) and @container style() (#10701).

Dashed and dotted rounded...

ladybird profile text instead macos editing

Related Articles