Главная | IT | Изменение процесса разработки и прогресс в развитии браузера Ladybird

Изменение процесса разработки и прогресс в развитии браузера Ladybird

Андреас Клинг (Andreas Kling), основатель web-браузера Ladybird, объявил об изменении процесса разработки проекта. Ladybird отныне прекращает приём публичных pull-запросов и переходит к продвижению изменений в кодовую базу только через сопровождающих. Все уже открытые публичные pull-запросы будут закрыты. Исходный код Ladybird продолжит поставляться под лицензией BSD. Сообщения о проблемах, уязвимостях и тестировании работы с сайтами продолжат приниматься без изменения. Сторонние энтузиасты также смогут принимать участие в обсуждениях, связанных с поддержкой стандартов и архитектурой проекта.

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

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

Дополнительно можно отметить майский отчёт о развитии Ladybird. Из недавних достижений отмечается:

  • Реализован JIT-компилятор для WebAssembly, основанного на Cranelift (переход от интерпретации к JIT-компиляции в 8 раз повысил производительность прохождения теста CoreMark и в 3-4 раза микротестов отдельных функций);
  • Задействован новый блокировщик нежелательного контента, основанный на библиотеке adblock-rust от проекта Brave и поддерживающий фильтры в стиле Adblock Plus и EasyList;
  • На языке Rust переписан парсер HTML;
  • Код прокрутки содержимого вынесен из основного потока в отдельный процесс композитинга и переведён на асинхронную модель работы;
  • Включён по умолчанию API Media Source Extensions и улучшена работа с потоковым видео;
  • Добавлена система кэширования байткода JavaScript на диске;
  • В сборщике мусора реализован инкрементальный режим очистки памяти, исключающий длительные приостановки вычислений и повышающий отзывчивость интерфейса;
  • Расширена поддержка CSS, реализованы контейнерные запросы (@container), разграничение области видимости (@scope), «grid-template-columns: subgrid», «scroll-margin», «scroll-padding»;
  • Добавлен API Permissions;
  • Реализован протокол HSTS (HTTP Strict Transport Security);
  • Обеспечено автоматическое определения кодировки текста;
  • В инструменты для web-разработчиков добавлена поддержка инспектирования flexbox- и grid-раскладок;
  • Улучшена совместимость с Discord, Shopify, Reddit, а также с сайтами, использующими графики на базе библиотеки TradingView.

  • Модернизирован интерфейс пользователя на базе библиотеки Qt. Реализован режим вертикального отображения вкладок. Добавлена поддержка перемещения вкладок мышью для их группировки, отсоединения или переноса в другое окно;

  • Вместо типовых для Qt стилей панелей и кнопок, реализовано собственное оформление вкладок, панели инструментов и адресной строки. Добавлена возможность восстановления недавно закрытых вкладок и окон. Реализована функция вставки текста из буфера обмена средней кнопкой мыши.

Браузер Ladybird развивается Андреасом Клингом, который когда-то работал в компании Nokia и занимался разработкой KHTML, а затем в Apple был одним из разработчиков Safari. Изначально проект был создан как приложение для операционной системы SerenityOS, но летом 2024 года был выделен в отдельный проект и получил пожертвование в 1 млн. долларов. Браузер написан на языке С++ (стартовал проект переписывания компонентов на Rust) и распространяется под лицензией BSD. Проектом развиваются собственный движок LibWeb, JavaScript-интерпретатор LibJS и сопутствующие библиотеки.

Источник