La version 0.0.2 du moteur de navigateur Servo et du navigateur de démonstration ServoShell, développés en Rust, a été publiée. Cette version est fonctionnellement similaire à la build nocturne du 14 novembre, qui a fait l'objet de tests manuels supplémentaires. Des builds sont disponibles pour Linux, Android, macOS et Windows.
Le moteur a été initialement développé par Mozilla, puis est passé sous la tutelle de la Linux Foundation. Servo se distingue par le support du rendu web multithread, le parallélisme des opérations DOM (Document Object Model) et l'utilisation des mécanismes de programmation sécurisée offerts par Rust. Servo a été conçu dès le départ pour prendre en charge la décomposition du code DOM et le rendu en plus petites sous-tâches qui peuvent être exécutées en parallèle, exploitant ainsi plus efficacement les ressources des CPU multicœurs. Certaines parties de Servo, comme le moteur CSS multithread et le système de rendu WebRender, sont déjà intégrées dans Firefox.

Principales modifications :
- Le support de XPath (XML Path Language), de AbortController et de AbortSignal est activé par défaut.
- Les API CompressionStream et DecompressionStream ont été ajoutées pour la compression et la décompression des flux de données.
- Le support de l'élément à l'intérieur des blocs
- Les méthodes fetchLater() et Document.parseHTMLUnsafe() ont été implémentées.
- Les propriétés « which » et « relatedTarget » ont été ajoutées à l'événement UIEvent.
- Les propriétés « name » et « bareas » ont été ajoutées à l'API HTMLMapElement.
- Le moteur de rendu a implémenté un gras synthétique pour l'épaississement programmatique des caractères, sans recourir à une police distincte.
- Le support de vsync a été ajouté pour synchroniser le début du rendu avec le signal de suppression des images.
- La création de builds arm64 natifs pour le navigateur ServoShell sur macOS a commencé.
- Le prototype du navigateur ServoShell pour Android dispose d'un mode expérimental, activant des fonctionnalités expérimentales désactivées par défaut, encore en développement. Il assure la gestion des événements tactiles et l'affichage du clavier à l'écran lors de l'activation des formulaires via les événements tactiles. Le zoom par pincement est supporté. Le défilement du clavier à l'écran est autorisé lors de son zoom.
Source : opennet.ru
