Команда браузера Ladybird подвела итоги октября: стили и раскладка страницы переехали в отдельный поток, запись отрисовки — в ещё один. Теперь они выполняются параллельно с JavaScript. Если сценарий запрашивает сведения о раскладке, он ждёт завершения актуальной работы и не получает устаревшие данные. CSS-анимации, включая изменения width и font-size, продолжаются во время долгого JavaScript. Состояние :hover тоже обновляется: браузер меняет стили, курсор и кадр, а события главный поток обрабатывает после освобождения.
LibJS получил оптимизирующий JIT на Linux и macOS для x86-64 и AArch64. Он собирает профили типов и форм объектов, делает спекулятивные предположения и встраивает небольшие функции. Для поиска ошибок разработчики сравнивали результаты JIT и интерпретатора фаззингом.
Прежние C++-движок WebAssembly и Cranelift заменены собственной системой с интерпретатором и JIT. Она поддерживает исключения и GC, написана на Rust и использует язык flap для сборки интерпретатора под x86-64, AArch64 и Windows x64. На совместимых задачах JetStream 3 результат вырос примерно в семь раз. Эмулятор JSLinux загружает Alpine Linux до командной строки за 1,8 секунды против 1,5 у Chrome.
26 октября Ladybird обогнал Safari Technology Preview по числу успешных подтестов Web Platform Tests. За месяц их стало на 75 650 больше, итоговый результат — 2 184 722. Около 30 тысяч добавилось в CSS и 10 тысяч в editing; множество небольших исправлений подготовили AI-агенты.
Браузер получил цельный новый интерфейс для macOS и Linux, светлую и тёмные темы, закрепление и поиск вкладок, восстановление окон, плавную прокрутку, начальную поддержку VoiceOver и Orca, проверку орфографии, Picture-in-Picture и ссылки на выделенный текст. Улучшена совместимость с Google Slides, GitHub, ChatGPT, Gmail, Instagram и другими сайтами.
В безопасности расширена изоляция процессов: межсайтовые iframe и всплывающие окна получают отдельные renderer-процессы, сетевые процессы и кеши разделяются по сайтам. Исправлены пути обхода sandbox. Ещё больше компонентов, включая LibJS, WebGL, IndexedDB и вычисление стилей, переведено с C++ на Rust. К первой альфа-версии, запланированной на этот год, добавлены установочные пакеты, отчёты о сбоях и стартовая настройка.