Домой Новости Софт и сервисы Изменение процесса разработки и прогресс в развитии браузера Ladybird

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

Андреас Клинг объявил об изменении политики коммитов в преддверии первого альфа-релиза независимого браузера.

Создатель и идеолог независимого веб-браузера Ladybird Андреас Клинг (Andreas Kling) сообщил о радикальной реструктуризации процесса разработки. Проект полностью прекращает прием публичных pull-запросов (PR) от сторонних разработчиков. Теперь все изменения в репозиторий будут вноситься исключительно доверенными мейнтейнерами. Все открытые на данный момент сторонние запросы будут закрыты без слияния.

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

Причины отказа от публичных пул-реквестов

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

Еще одна серьезная проблема кроется в изменении характера сторонней разработки. С распространением генеративного искусственного интеллекта снизился уровень доверия к патчам от неизвестных авторов — объем предложенного кода больше не отражает реальные трудозатраты и время, потраченное человеком на осмысление задачи. Кроме того, открытая модель упрощает атаки типа «социальная инженерия», когда злоумышленник сначала присылает несколько полезных исправлений для завоевания авторитета, а затем пытается незаметно внедрить бэкдор или уязвимость.

Главные достижения в разработке браузера

Параллельно с реформой управления разработчики поделились отчетом о прогрессе проекта за май. Команде удалось добиться значительных успехов в оптимизации производительности, расширении стандартов и улучшении пользовательского интерфейса.

Ключевые технические улучшения и нововведения:

  • Разработан JIT-компилятор для WebAssembly на базе Cranelift. Переход от простой интерпретации к динамической компиляции позволил ускорить прохождение бенчмарка CoreMark в 8 раз, а микротестов отдельных функций — в 3–4 раза.
  • Интегрирован новый блокировщик рекламы и нежелательного контента на основе библиотеки adblock-rust от создателей браузера Brave. Он полностью поддерживает правила фильтрации в формате EasyList и Adblock Plus.
  • Парсер HTML-документов был полностью переписан на язык программирования Rust.
  • Код, отвечающий за плавную прокрутку страниц, вынесен из основного потока в изолированный процесс композитинга и переведен на асинхронный режим работы.
  • Активирован по умолчанию интерфейс Media Source Extensions (MSE), что существенно улучшило стабильность и качество воспроизведения потокового видео.
  • Внедрена система локального кэширования байткода JavaScript на жестком диске.
  • В сборщике мусора появился инкрементальный режим очистки памяти, что минимизировало паузы в работе скриптов и повысило общую отзывчивость интерфейса.
  • Существенно расширена поддержка CSS: добавлены контейнерные запросы (@container), ограничение области видимости стилей (@scope), поддержка subgrid для сетки колонок, а также свойства scroll-margin и scroll-padding.
  • Добавлен стандартный API Permissions для управления разрешениями сайтов.
  • Реализована полноценная поддержка протокола безопасности HSTS (HTTP Strict Transport Security).
  • Добавлена функция автоматического распознавания кодировки текстовых файлов.
  • Инструменты веб-разработчика теперь позволяют детально инспектировать макеты, построенные с использованием Flexbox и CSS Grid.
  • Повышена стабильность работы со сложными веб-ресурсами, включая платформу Discord, конструктор сайтов Shopify, социальную сеть Reddit, а также интерактивные финансовые графики на базе библиотеки TradingView.
Список технических улучшений браузера Ladybird
Технический прогресс браузера Ladybird Источник: opennet.ru

Обновление интерфейса на базе Qt

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

Интерфейс браузера Ladybird с вертикальными вкладками
Новый интерфейс Ladybird на базе библиотеки Qt Источник: opennet.ru

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

Кастомное оформление элементов интерфейса браузера Ladybird
Собственный дизайн элементов управления в Ladybird Источник: opennet.ru

История создания и особенности проекта

Проект Ladybird развивается под руководством Андреаса Клинга. Ранее он работал в финской компании Nokia, где развивал движок KHTML, а затем перешел в Apple, где входил в команду разработки браузера Safari. Изначально Ladybird создавался как встроенный браузер для авторской операционной системы SerenityOS. Однако летом 2024 года он стал полностью независимым проектом и получил крупное пожертвование в размере 1 миллиона долларов.

Браузер изначально написан на C++, однако сейчас запущен процесс постепенного переписывания ключевых компонентов на безопасный язык Rust. Проект принципиально не использует готовые движки (такие как Chromium или Gecko), а развивает собственную технологическую базу: рендерер LibWeb, интерпретатор JavaScript LibJS и сопутствующие библиотеки под свободной лицензией BSD.

Источник: http://www.opennet.ru