|
Опубликован выпуск браузерного движка Servo 0.1.0 и развиваемого вместе с ним демонстрационного браузера ServoShell, написанных на языке Rust. Готовые сборки сформированы для Linux, Android, macOS и Windows. Помимо отдельных сборок Servo теперь поставляется и в форме crate-пакета, позволяющего использовать движок в форме библиотеки.
Servo 0.1.0 стал первым выпуском, для которого обеспечен длительный цикл поддержки (LTS). Новые LTS-ветки будут публиковать раз в 6 месяцев на основе очередного промежуточного выпуска. Поддержка LTS-выпусков будет осуществляться 9 месяцев (3 месяца даётся для перехода на новую LTS-ветку). От обычных выпусков LTS-ветка отличается публикацией обновлений с исправлениями уязвимостей в библиотеке servo, JavaScript-движке и зависимостях. Предполагается, что LTS-ветка будет полезна для разработчиков, встраивающих Servo в свои проекты и не желающих ежемесячно переходить на очередной промежуточный выпуск с возможными изменениями в API.
Выпуск Servo 0.1.0 LTS построен на основе сформированной несколько дней назад промежуточной версии 0.0.6, в которой были реализованы следующие новые возможности:
- В HTML-элементe "button" реализованы атрибуты "command" и "commandfor", которые можно использовать в кнопках вместо атрибутов "popovertargetaction" и "popovertarget" для декларативной настройки взаимодействия с меню, вызываемым при нажатии на кнопку.
- Добавлен CSS-селектор ":modal", позволяющий определить, что диалог, созданный через элемент <dialog>, является модальным.
- Реализовано CSS-правило @property, позволяющее регистрировать собственные CSS-свойства.
- Добавлены CSS-свойства "alignment-baseline" и "baseline-shift" для выравнивания текста по вертикали.
- Добавлена поддержка заголовка "Content-Security-Policy: base-uri", ограничивающего URL, которые могут использоваться в HTML-элементе <base>.
- Добавлена частичная поддержка отложенной загрузки iframe-блоков, при которой содержимое, находящееся вне видимой области, не загружается до тех пор, пока пользователь не прокрутит страницу в место, непосредственно предшествующее элементу. Включение отложенной загрузки страниц осуществляется через атрибут "loading=lazy" в теге iframe (<iframe loading=lazy>).
- Добавлена частичная поддержка CSS-свойства "transform-style: preserve-3d" для позиционирования дочерних элементов в 3D-пространстве.
- Реализованы события pointermove, pointerdown, pointerup и pointercancel.
- Обеспечен поворот изображений на основе метаданных EXIF.
- Обеспечено использование переменной окружения LANG для выбора языка по умолчанию для заголовка "Accept-Language" и свойства navigator.language.
- Добавлены API Pointer Events и UserActivation.
- Реализованы методы import.meta.resolve(), formData(), toJSON(), createIndex(), deleteIndex() и index().
- В демонстрационном браузере servoshell для изменения настроек
реализованы страницы servo:preferences (GUI конфигуратор) и servo:config (изменение отдельных параметров в стиле about:config). Добавлена поддержка перезагрузки страницы при нажатии F5.
- В инструментах для web-разработчиков в режиме инспектирования добавлена поддержка редактирования атрибутов DOM, в web-консоли обеспечен предпросмотр объектов, передаваемых через console.log(), в отладчике появилась возможность приостановки и возобновления выполнения скриптов.
- Расширен API для встраивания браузерного движка в приложения.
Движок Servo изначально развивался компанией Mozilla, но затем перешёл под покровительство организации Linux Foundation. Servo отличается поддержкой многопоточного рендеринга web-страниц, распараллеливанием операций с DOM (Document Object Model) и задействованием предоставляемых языком Rust механизмов безопасного программирования. Servo изначально создан с поддержкой разбиения кода DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. В Firefox уже интегрированы некоторые части Servo, такие как многопоточный CSS-движок и система отрисовки WebRender.
|