Домой Статьи и аналитика Технологии Релиз Servo 0.2: значительное обновление браузерного движка на Rust

Релиз Servo 0.2: значительное обновление браузерного движка на Rust

Разработчики представили вторую версию экспериментального движка Servo с рекордным количеством правок, улучшенной мобильной оболочкой и поддержкой новых стандартов.

Интерфейс и архитектура движка Servo
Демонстрация работы движка Servo 0.2 Источник: linux.org.ru

Состоялся релиз Servo 0.2.0 — очередной версии экспериментального браузерного движка, написанного на языке программирования Rust. Обновление, выпущенное 31 мая 2026 года, стало итогом работы за апрель: разработчики внедрили 534 коммита, установив тем самым новый месячный рекорд продуктивности проекта. Напомним, что Servo развивается под эгидой Linux Foundation Europe и ставит своей целью создание легковесного встраиваемого веб-движка для мобильных платформ, различных приложений и экспериментальных браузерных оболочек.

Ключевые изменения и улучшения

  • Оптимизация интерфейса для Android: Демонстрационная оболочка servoshell получила обновленный интерфейс и новый экран истории. Размер APK-файла сократился примерно на 30%. Также были исправлены проблемы с отображением «черного экрана» при выходе из настроек или переключении между приложениями. Для OpenHarmony добавлена возможность закрытия вкладок.
  • Поддержка языков CJK: В движке раскладки отлажена работа переноса строк для китайского, японского и корейского языков. В версии servoshell для Windows, Linux и FreeBSD теперь корректно отображаются CJK-шрифты.
  • Интерактивный JSON-просмотрщик: При открытии JSON-файлов Servo автоматически задействует встроенный pretty-printer, что упрощает работу разработчикам, анализирующим API-ответы и структурированные данные.
  • Развитие Web Platform: Добавлена поддержка ряда современных стандартов, включая воспроизведение видео на OpenHarmony, параметры minimum-scale и maximum-scale для тега <meta>, функцию color-mix() с произвольным количеством цветов, свойство tab-size, а также возможность создания Worker из blob URL и использование контекста WebGL для OffscreenCanvas.
  • Новые DOM API: Реализованы события selectionchange, StorageManager, свойство activeElement для Document и ShadowRoot, а также crypto.subtle.supports() — Servo стал первым движком, внедрившим этот функционал. Также добавлены свойства cellPadding, cellSpacing и align для HTMLTableElement.
  • Работа с клавиатурой и фокусом: Клавиша Tab теперь корректно переходит через границы iframe, а комбинации Ctrl+Backspace (или Option+Backspace на macOS) позволяют удалять слова целиком в полях ввода.

Инструменты разработчика и безопасность

В связке с Firefox DevTools были существенно доработаны вкладки Inspector, Console и Debugger. Панель Rules теперь отображает объявления из @layer, улучшена работа с переменными, массивами и объектами, а также добавлена начальная поддержка Style Editor.

В сфере безопасности исправлено множество уязвимостей, включая проблемы с доступом к DOM API между документами с разным origin, ошибки изоляции localStorage и sessionStorage в sandboxed iframe, а также уязвимости при чтении памяти за пределами буфера в texImage3D() для WebGL2.

Производительность и API для встраивания

Разработчики внесли ряд правок для повышения производительности: ускорена загрузка спецификации ECMAScript, первый TLS-сеанс стал быстрее на 30–60 мс, а потребление памяти DOM-узлами (Attr, Text, CharacterData) удалось снизить на 16 байт на узел. Страница about:memory теперь предоставляет более точные данные о распределении памяти.

Для сторонних разработчиков версия 0.2.0 является «ломающим» обновлением. В API добавлены возможности загрузки URL с пользовательскими HTTP-заголовками через WebView::load_request, асинхронное получение cookie и улучшенное управление данными сессий.

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