Вышло очередное ежемесячное обновление независимого браузера Ladybird, проекта с открытым исходным кодом, который всё ещё находится в разработке и приближается к первому альфа-релизу. В новой версии появились функции, которые пользователи ожидают от современного браузера. Среди них загрузка файлов, история просмотров, инспектор хранилищ в инструментах разработчика, управление скоростью воспроизведения мультимедиа и предпросмотр вкладок.

Что касается загрузок, Ladybird теперь умеет сохранять файлы локально. В браузере появился индикатор загрузок на панели инструментов, всплывающее окно с активными загрузками и их прогрессом, страница about для загрузок, возможность их отмены, а также запрос подтверждения при выходе из браузера с незавершёнными загрузками.

В этом месяце появилась и история просмотров. Теперь у Ladybird есть страница about с локальной историей, возможностью поиска и удаления записей. При клике правой кнопкой мыши или долгом нажатии на кнопки “назад” и “вперёд” открывается меню истории с заголовками страниц и фавиконами. Кроме того, добавлен быстрый способ очистки данных браузера.

Инструменты разработчика получили несколько полезных улучшений. Появилась новая вкладка Storage, с помощью которой разработчики могут просматривать и изменять cookie, работать с localStorage и sessionStorage, а также проверять базы IndexedDB. Улучшен и показ стилей CSS: теперь для вычисленных значений раскрываются отдельные правила, в том числе переопределённые и невалидные, а ссылки на исходный код стали рабочими.

Что касается мультимедиа, теперь Ladybird позволяет менять скорость воспроизведения. Звук обрабатывается с сохранением тональности при ускорении и замедлении. Автоматическое воспроизведение медиафайлов работает только для приглушённого контента, а для включения звука по-прежнему требуется действие пользователя. Это приближает поведение браузера к современным сайтам и не даёт нежелательному звуку нарушать тишину.

Самое важное изменение для пользователей Linux связано с безопасностью. В браузере теперь по умолчанию включена изоляция процессов (sandboxing). Вспомогательные процессы Ladybird работают внутри настоящих изолированных окружений: на Linux используются seccomp и Landlock, а на macOS — профили Seatbelt.

Ещё одно важное архитектурное изменение: доступ к GPU теперь осуществляется из изолированного процесса композитинга. Благодаря этому процессам WebContent больше не требуется прямой доступ к графическому ускорителю, что усиливает разделение между веб-контентом и графическими операциями.

Что касается JavaScript, то движок LibJS теперь использует оптимизированный ассемблерный интерпретатор на всех поддерживаемых платформах, а от старого общего байткод-интерпретатора отказались. Внутреннее представление строк JavaScript переведено на UTF-16, как того требует сам язык, что снижает накладные расходы на преобразования.

Улучшилась и поддержка WebAssembly: движок LibWasm обзавёлся поддержкой сборки мусора (WebAssembly GC), а также частичной реализацией предложения по обработке исключений.

Интерфейс браузера также получил небольшие доработки. При наведении курсора на фоновую вкладку теперь появляется её миниатюра, вертикальные вкладки можно разместить справа, в свёрнутом виде вертикальные вкладки показывают значки звука и закрытия. Исправлен ряд проблем в поле адреса и поведении окон на macOS.

Напоследок разработчики напомнили о недавнем изменении в процессе разработки. Как сообщалось ранее, Ladybird больше не принимает публичные правки кода: изменения теперь вносятся только мейнтейнерами. При этом браузер остаётся открытым, и проект рад сообщениям об ошибках, упрощённым тестовым примерам, тестированию сайтов, обсуждениям стандартов, техническим отзывам и отчётам о безопасности.

Подробнее можно узнать в блоге Ladybird.