Домой Статьи и аналитика Технологии Servo 0.4.0: новые Web API, улучшенная безопасность и поддержка Android

Servo 0.4.0: новые Web API, улучшенная безопасность и поддержка Android

Браузерный движок на Rust стал лучше работать с современными сайтами и получил мощное обновление безопасности.

1
0
Интерфейс движка Servo
Демонстрационная оболочка Servoshell Источник: linux.org.ru

Состоялся релиз Servo 0.4.0 — экспериментального браузерного движка, написанного на языке программирования Rust. Обновление, выпущенное 31 июля 2026 года, стало итогом масштабной работы за июнь и включило 558 изменений. Проект ориентирован на встраивание в сторонние приложения и доступен в виде сборок для Windows, Linux, macOS, Android и OpenHarmony под лицензией MPL 2.0.

Разработчики подчеркивают, что Servo не позиционируется как прямая замена полноценным браузерам вроде Chromium или Firefox. Демонстрационная оболочка Servoshell служит лишь для тестирования функций и демонстрации возможностей движка. Тем не менее, команда активно работает над совместимостью с современными сайтами и созданием стабильного API для интеграции.

Улучшения совместимости и функциональности

В версии 0.4.0 проделана большая работа над корректностью отображения веб-ресурсов. Повышена точность верстки страниц Lichess, а благодаря оптимизации работы с вариативными шрифтами интерфейсы Speedtest и Zulip стали заметно четче. Такие сложные веб-сервисы, как Google Photos, теперь функционируют корректно, а Google Maps и OpenStreetMap стали стабильнее, несмотря на некоторые нюансы с интерактивными элементами.

Ключевые функциональные изменения включают:

  • CSS и верстка: Расширена поддержка медиазапросов (включая aspect-ratio, orientation, pointer и параметры min/max). В экспериментальном режиме обновлены функции attr(), image(), добавлены параметры для circle() и ellipse().
  • Web API: Реализован SharedWorker, позволяющий разным вкладкам использовать один фоновый процесс JavaScript. Добавлены console.dir(), textStream() для потокового чтения текста и методы захвата указателя.
  • Пользовательские элементы: Улучшена работа CustomElementRegistry, который теперь поддерживает привязку к теням и отдельным документам.
  • WebGPU: Прогресс в поддержке GPU-ускорения, включая работу с текстурами, наборы запросов и отладку команд.
  • Интерфейс: В десктопной версии появилась возможность открывать файлы через перетаскивание (Drag-and-Drop) и горизонтальная прокрутка вкладок. Мобильная версия для Android теперь требует минимум 13-ю версию ОС и полностью переведена на Kotlin и Compose UI.

Безопасность и внутренние доработки

Значительная часть релиза посвящена безопасности. Движок JavaScript SpiderMonkey был последовательно обновлен до версии 140.12.0. Это позволило закрыть ряд критических уязвимостей, упомянутых в бюллетенях MFSA 2026–48 и MFSA 2026–58 (CVE-2026–8388, CVE-2026–8391, CVE-2026–8974 и CVE-2026–8975).

Также исправлена ошибка, позволявшая внедрять вредоносный код через file:// при просмотре локальных директорий. Криптографические операции RSA и ML-DSA оптимизированы для защиты от атак по времени выполнения, хотя реализация RSA все еще требует доработки для полной защиты от уязвимости Marvin.

Для разработчиков, планирующих интеграцию движка, расширена документация и добавлен метод получения контекста отрисовки из WebView. Поскольку язык Rust пока не имеет стабильного двоичного интерфейса, команда начала проектирование C-обертки. Это позволит подключать Servo как динамическую библиотеку без необходимости компиляции всего движка вместе с приложением.

Источник: https://www.linux.org.ru