La version 0.1.0 du moteur de navigateur Servo et le navigateur de démonstration ServoShell, tous deux écrits en Rust, ont été publiés. Des builds sont disponibles pour Linux, Android, macOS et Windows. En plus des builds séparés, Servo est maintenant également proposé sous forme de crate, permettant d'utiliser le moteur comme une bibliothèque.
Servo 0.1.0 est la première version bénéficiant d'un cycle de support prolongé (LTS). De nouvelles branches LTS seront publiées tous les 6 mois sur la base d'une release intermédiaire. Le support des versions LTS durera 9 mois (3 mois seront accordés pour passer à la nouvelle branche LTS). Contrairement aux versions ordinaires, la branche LTS publiera des mises à jour avec des correctifs de sécurité pour la bibliothèque servo, le moteur JavaScript et ses dépendances. On prévoit que la branche LTS sera utile pour les développeurs intégrant Servo dans leurs projets et ne souhaitant pas migrer chaque mois vers une nouvelle version intermédiaire avec d'éventuels changements API.
La version Servo 0.1.0 LTS est basée sur la version intermédiaire 0.0.6, qui a été publiée il y a quelques jours et qui a introduit les nouvelles fonctionnalités suivantes :
- Dans l'élément HTML « button », les attributs « command » et « commandfor » ont été ajoutés, pouvant être utilisés dans les boutons à la place des attributs « popovertargetaction » et « popovertarget » pour configurer de manière déclarative l'interaction avec le menu qui s'ouvre lors du clic sur le bouton.
- Un sélecteur CSS « :modal » a été ajouté, permettant de déterminer qu'une boîte de dialogue créée via l'élément
- La règle CSS @property a été implémentée, permettant d'enregistrer des propriétés CSS personnalisées.
- Les propriétés CSS « alignment-baseline » et « baseline-shift » ont été ajoutées pour l'alignement vertical du texte.
- Le support pour l'en-tête « Content-Security-Policy: base-uri » a été ajouté, limitant les URL pouvant être utilisées dans l'élément HTML .
- Un support partiel pour le chargement différé des blocs iframe a été ajouté, où le contenu hors de la zone visible ne sera pas chargé jusqu'à ce que l'utilisateur fasse défiler la page vers l'endroit juste avant l'élément. L'activation du chargement différé des pages se fait via l'attribut « loading=lazy » dans la balise iframe ().
- Un support partiel de la propriété CSS « transform-style: preserve-3d » a été ajouté pour le positionnement des éléments enfants dans un espace 3D.
- Les événements pointermove, pointerdown, pointerup et pointercancel ont été implémentés.
- La rotation des images en fonction des métadonnées EXIF a été assurée.
- Utilisation de la variable d'environnement LANG pour sélectionner la langue par défaut de l'en-tête « Accept-Language » et de la propriété navigator.language.
- Ajout des API Pointer Events et UserActivation.
- Implémentation des méthodes import.meta.resolve(), formData(), toJSON(), createIndex(), deleteIndex() et index().
- Dans le navigateur de démonstration servoshell, les pages servo:preferences (configurateur GUI) et servo:config (modification de paramètres individuels comme dans about:config) ont été mises en place pour modifier les paramètres. La prise en charge du rechargement de la page en appuyant sur F5 a été ajoutée.

- Dans les outils pour les développeurs web en mode d'inspection, il a été ajouté un support pour l'édition des attributs DOM, et dans la console web, un aperçu des objets transmis via console.log() a été assuré, tandis que dans le débogueur, il est désormais possible de suspendre et de reprendre l'exécution des scripts.
- L'API pour l'intégration du moteur de navigateur dans les applications a été élargie.
Le moteur Servo a initialement été développé par Mozilla, puis a été placé sous le patronage de la Linux Foundation. Servo se distingue par son support du rendu multithread des pages web, de la parallélisation des opérations sur le DOM (Document Object Model) et de l'utilisation des mécanismes de programmation sécurisée offerts par le langage Rust. Servo a été créé naturellement pour gérer la répartition du code DOM et le rendu en sous-tâches plus petites, pouvant être exécutées en parallèle et utilisant plus efficacement les ressources des CPU multicœurs. Certaines parties de Servo, comme le moteur CSS multithread et le système de rendu WebRender, ont déjà été intégrées dans Firefox.
Source : opennet.ru

