Опубликован выпуск браузерного движка Servo 0.0.5 и развиваемого вместе с ним демонстрационного браузера ServoShell, написанных на языке Rust. Готовые сборки сформированы для Linux, Android, macOS и Windows.
Движок изначально развивался компанией Mozilla, но затем перешёл под покровительство организации Linux Foundation. Servo отличается поддержкой многопоточного рендеринга web-страниц, распараллеливанием операций с DOM (Document Object Model) и задействованием предоставляемых языком Rust механизмов безопасного программирования. Servo изначально создан с поддержкой разбиения кода DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. В Firefox уже интегрированы некоторые части Servo, такие как многопоточный CSS-движок и система отрисовки WebRender.
Основные изменения:
- В HTML-элемент ‹audio› добавлена поддержка воспроизведения файлов в формате OGG.
- Добавлена поддержка упреждающей загрузки ресурсов, используя тег ‹link rel=preload›, при помощи которого можно организовать загрузку ресурсов, не дожидаясь, когда они будут запрошены, например, можно сразу загрузить определённые файлы CSS, скрипты, видео и картинки.
- В HTML-элементах "style" и "link" реализована поддержка свойства "blocking" для приостановки отрисовки страницы до окончанию загрузки ресурса.
- В HTML-элемент "img" добавлена поддержка свойства "align" для управления выравниванием изображения.
- В HTML-элемент "select" добавлена поддержка свойства "disabled" для деактивации выпадающего списка.
- Добавлена поддержка свойства "cursor-color" для изменения цвета курсора в полях ввода.
- Добавлена поддержка применения CSS-свойства "content" для замены любого HTML-элемента изображением.
- Добавлена поддержка псевдоэлемента "::details-content" для изменения стиля содержимого, заданного через HTML-элемент ‹details›.
- В HTML-элемент ‹details› добавлена поддержка псевдокласса ":open", срабатывающего при открытии диалога.
- Для HTML-элемента ‹input type=button› реализована поддержка псевдокласса ":active", действующего в промежуток времени от нажатия до отпускания кнопки.
- Добавлен API Origin для получения информации об источнике получения содержимого на уровне связки "протокол + домен + порт".
- Реализовано свойство MouseEvent.detail для получения информации о характере клика (одинарный, двойной).
- В объект Request добавлено свойство "keepalive" для определения находится ли соединение в состоянии keepalive.
- Добавлена поддержка загрузки через выражения import модулей в формате JSON.
- Добавлена возможность указания атрибутов для указания типа содержимого при импорте через выражение import.
- Добавлена поддержка зацикленного импорта JavaScript-модулей.
- Включена по умолчанию поддержка интерфейса navigator.sendBeacon, для асинхронной передачи небольших порций данных из браузера на сервер.
- Добавлена настройка https_proxy, а также переменные окружения HTTPS_PROXY и NO_PROXY для организации работы через HTTPS-прокси.
- В API Crypto добавлена поддержка алгоритмов ML-KEM, ML-DSA и AES-OCB.
- Добавлена поддержка кросскомпиляции, используя в качестве хоста платформу Windows.
- Добавлена настройка network_connection_timeout для выставления таймаута установки сетевого соединения (по умолчанию 15 секунд).
Источник: https://www.opennet.ru/opennews/art.shtml?num=64893





