Состоялся второй выпуск открытого проекта браузерного движка Servo. Решение написано на языке программирования Rust и опубликовано на GitHub под лицензиями Mozilla Public License 2.0 и BSD 3-Clause License.

В примечании к выпуску Servo 0.0.2 отмечено, что по функциональности эта версия аналогична ночной сборке от 14 ноября, для которой проведено дополнительное ручное тестирование. В команде Servo планируют публиковать новые релизы не менее раза в месяц.

Готовые сборки Servo 0.0.2 представлены для Linux, Android, macOS и Windows.

Движок Servo изначально развивался компанией Mozilla, но затем перешёл под покровительство организации Linux Foundation.

Решение Servo отличается поддержкой многопоточного рендеринга веб‑страниц, распараллеливанием операций с DOM (Document Object Model) и задействованием предоставляемых языком Rust механизмов безопасного программирования.

Проект Servo изначально создан с поддержкой разбиения кода DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. В Firefox уже интегрированы некоторые части Servo, такие как многопоточный CSS‑движок и система отрисовки WebRender. Также на базе Servo развивается демонстрационный браузер ServoShell.

Основные изменения и доработки Servo 0.0.2:

  • включена по умолчанию поддержка XPath (XML Path Language), AbortController и AbortSignal.

  • добавлены API CompressionStream и DecompressionStream для сжатия и распаковки потоков данных.

  • добавлена поддержка элемента <source> внутри блоков <video> и <audio>.

  • реализованы методы fetchLater() и Document.parseHTMLUnsafe().

  • в событии UIEvent реализованы свойства «which» и «relatedTarget„. „““»

  • в API HTMLMapElement реализованы свойства «name» и «bareas„. „““»

  • в движке отрисовки реализовано синтезированное жирное начертание символов (synthetic bold), при котором символы утолщаются программно без использования отдельного начертания шрифта.

  • добавлена поддержка vsync для синхронизации начала отрисовки с кадровым гасящим импульсом.

  • началось формирование родных arm64-сборок браузера ServoShell для macOS.

  • в прототипе браузера ServoShell для Android реализован экспериментальный режим, при котором активируются отключённые по умолчанию экспериментальные возможности, ещё до конца не стабилизированные и находящиеся в разработке. Обеспечена доставка событий касания к сенсорному экрану и вывод экранной клавиатуры при активации форм ввода событиями сенсорного экрана. Добавлена поддержка масштабирования щипком. Разрешена прокрутка экранной клавиатуры при её масштабировании.