Состоялся второй выпуск открытого проекта браузерного движка 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 для сжатия и распаковки потоков данных.
добавлена поддержка элемента внутри блоков
реализованы методы fetchLater() и Document.parseHTMLUnsafe().
в событии UIEvent реализованы свойства «which» и «relatedTarget„. „““»
в API HTMLMapElement реализованы свойства «name» и «bareas„. „““»
в движке отрисовки реализовано синтезированное жирное начертание символов (synthetic bold), при котором символы утолщаются программно без использования отдельного начертания шрифта.
добавлена поддержка vsync для синхронизации начала отрисовки с кадровым гасящим импульсом.
началось формирование родных arm64-сборок браузера ServoShell для macOS.
в прототипе браузера ServoShell для Android реализован экспериментальный режим, при котором активируются отключённые по умолчанию экспериментальные возможности, ещё до конца не стабилизированные и находящиеся в разработке. Обеспечена доставка событий касания к сенсорному экрану и вывод экранной клавиатуры при активации форм ввода событиями сенсорного экрана. Добавлена поддержка масштабирования щипком. Разрешена прокрутка экранной клавиатуры при её масштабировании.
Источник: habr.com