Опубликован выпуск браузерного движка 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.
НОВОСТИ В КЫРГЫЗСТАНЕ