В июле 2025 года браузер Ladybird представил масштабное обновление, которое затронуло множество аспектов работы и безопасности веб-браузера. За месяц команда разработчиков успешно влила 319 пул-реквестов от 47 участников, что свидетельствует о богатой активности сообщества и постоянном совершенствовании продукта. Этот релиз стал знаковым шагом в развитии Ladybird, открывая новые возможности и повышая производительность, безопасность и совместимость с современными веб-стандартами. Поддержка сообщества и новые спонсоры Стабильное финансирование является ключевым фактором для успешного развития любого проекта с открытым исходным кодом. Ladybird финансируется благодаря поддержке как компаний, так и отдельных энтузиастов, разделяющих ценности открытого веба.
В июле к списку спонсоров присоединились компания Scraping Fish, выделившая 5000 долларов, а также Blacksmith, предоставившая инфраструктуру для высокопроизводительных CI-систем. Такая поддержка позволяет команде сосредоточиться на качественной реализации новых функций и исправлении ошибок, не отвлекаясь на финансовые трудности. Продвижение Web Platform Tests и совместимость с современными стандартами Совместимость браузера с веб-стандартами имеет решающее значение для корректного отображения большинства сайтов. В рамках этого обновления Ladybird добавил более 13 тысяч новых проходящих тестов в Web Platform Tests (WPT), доведя общий их счет до более чем 1,8 миллиона. Это свидетельствует о серьезном стремлении разработчиков к максимальной точности и соответствию спецификациям.
Исправление проблемы с Google reCAPTCHA Одной из ранее известных проблем являлась некорректная реализация метода postMessage, влияющая на взаимодействие между окнами в различных контекстах (realms). Из-за этого при передаче сообщений, содержащих ранее неиспользованные сериализованные типы, вторичное окно не распознавало эти данные и отвергало сообщение. Исправленная реализация устранила эту ошибку, благодаря чему теперь Google reCAPTCHA успешно работает в Ladybird при посещении официального сайта google.com. Несмотря на это, существует отдельная нерешенная проблема, связанная с политикой одного источника (same-origin policy), которая пока ограничивает прохождение reCAPTCHA только на главном домене Google.
Поддержка высокой частоты обновления экрана Ещё одним важным усовершенствованием стала интеграция автоматического определения частоты обновления активного экрана. Ранее браузер фиксировал рендеринг с постоянной скоростью 60 кадров в секунду, что ограничивало плавность графики и анимаций. Теперь благодаря динамическому определению, сайты, использующие requestAnimationFrame, могут выводить контент с частотой до 120 Гц и более на поддерживаемом оборудовании. Это позитивно сказывается на плавности прокрутки, анимаций и переходов, улучшая визуальное восприятие при работе с современными дисплеями. Поддержка протокола HTTP/3 В рамках июльского обновления был реализован протокол HTTP/3 — современный стандарт для передачи данных в интернете.
Поскольку Ladybird использует библиотеку libcurl с бэкендом OpenSSL, добавление поддержки HTTP/3 стало возможным благодаря нововведениям в curl 8.14.0 и 8.15.0.
Теперь браузер автоматически устанавливает соединение по HTTP/3, если сервер сообщает о его поддержке через заголовок Alt-Svc. Также команда Ladybird выявила и помогла исправить ошибку в curl, связанную с некорректным парсингом заголовка Alt-Svc: clear. Поддержка HTTP/3 обеспечивает более быструю, защищенную и эффективную работу веб-сайтов. Внедрение Trusted Types — повышение безопасности Безопасность в веб-приложениях играет критически важную роль, особенно в борьбе с XSS-атаками. Ladybird начал реализовывать поддержку Trusted Types — механизма, позволяющего влиять на правила внедрения динамического контента посредством JavaScript.
Trusted Types блокируют выполнение небезопасной вставки HTML, контролируя процессы через специальные политики, которые регулируют допустимые значения для innerHTML, текстовых и исходных скриптовых элементов. Это первичное внедрение уже позволило усилить защиту браузера, а работа над дальнейшим расширением данной функциональности продолжается. Улучшения в работе с SVG и HTML Браузер лучше обрабатывает элемент SVG foreignObject, который позволяет вставлять произвольный HTML внутри SVG-документов. Отладка и гармонизация работы связаны с правилами верстки, стилевого сопоставления и отрисовки. Благодаря этим изменениям взаимодействие двух различных форматов контента внутри одного документа стало более стабильным и соответствует стандартам, что положительно влияет на отображение сложной графики и интеграцию взаимодействующих элементов.
Расширение возможностей CSS Данный релиз принес много улучшений в области CSS. Среди них появление поддержки свойства content с функцией url(), которая теперь доступна для CSS-псевдоэлементов ::before и ::after. Это открывает новые горизонты для дизайнеров, позволяя вставлять изображения и другие медиафайлы с помощью стилей, что соответствует поведению современных веб-сайтов. Кроме того, появились два новых псевдокласса :state(foo) и :unchecked, которые расширяют возможности стилизации пользовательских элементов и форм соответственно. :state(foo) позволяет применять стили к пользовательскому элементу в зависимости от его внутреннего состояния, аналогично стандартным псевдоклассам вроде :checked.
Псевдокласс :unchecked предназначен для элементов форм, которые можно отмечать, но в данный момент они не выбраны. Оба псевдокласса повышают совместимость и выразительность при стилизации веб-компонентов и современных форм. Оптимизация работы с логическими свойствами CSS В продолжение прошлых улучшений, теперь Ladybird генерирует отображения между логическими и физическими CSS-свойствами во время компиляции кода. Понимание и управление такими группами свойств как отступы, маргины и прочие, положительно сказываются на точности обработки стилей и скорости работы движка, особенно при динамических изменениях из JavaScript. Реализация произвольных функций подстановки в CSS Переработаны функции var() и attr() для полноценного соответствия спецификациям CSS Arbitrary Substitution Functions.
Эти функции возвращают значения, которые подставляются в правила стилей перед дальнейшим парсингом. Новая реализация сделала эти функции более устойчивыми и расширяемыми, позволяя в будущем добавить поддержку таких функций как if() и env(), что расширит возможности CSS Houdini и сделает стили еще мощнее. Поддержка парсинга <syntax> в CSS Нововведение в CSS позволяет авторам явно указывать синтаксис значения атрибутов с помощью типа <syntax>, который используется внутри функции attr(). Например, с помощью выражения color: attr(data-color type(<color>)); браузер понимает, что значение атрибута data-color должно интерпретироваться как цвет, что помогает валидации и правильному применению стилей. Ladybird теперь поддерживает этот функционал, что улучшает работу с CSS Houdini и кастомными свойствами.
Развитие поддержки @property и CSS.registerProperty() Со временем Ladybird постепенно дополняет реализацию CSS Properties and Values API (Houdini). В июле добавлена поддержка начальных значений свойств, объявляемых с помощью @property, а также реализована начальная поддержка функции CSS.registerProperty(). Это позволит разрабатывать более сложные анимации и стили с использованием кастомных CSS-свойств.
Переход на использование UTF-16 в ядре JavaScript До этого момента браузер использовал внутреннюю кодировку UTF-8 с динамическим преобразованием в UTF-16 при взаимодействии с веб-строками. С июльским обновлением в Ladybird появился новый нативный тип строк UTF-16, который скрыт внутри JavaScript-движка LibJS и веб-библиотеки LibWeb. Такой переход упрощает архитектуру и устраняет ряд багов, связанных с обработкой сложных символов Unicode, что особенно важно при работе с международными текстами и эмодзи. Благодарность участникам сообщества Команда Ladybird выразила глубокую признательность всем разработчикам и контрибьюторам, которые внесли свой вклад в июльском обновлении. Среди активных участников были как авторы кода, так и тестировщики, улучшившие качество продукта.