Publication de la version Servo 0.2.0 — nouvelle version du moteur de navigateur expérimental, écrit en Rust. La sortie a eu lieu le 31 mai 2026 et inclut les modifications apportées en avril : au total, les développeurs ont compté 534 commits, ce qui constitue un nouveau record mensuel pour le projet. Servo évolue en tant que projet indépendant sous l'égide de la Linux Foundation Europe et est axé sur la création d'un moteur web léger intégré pour des applications, des plateformes mobiles et des coquilles de navigateur expérimentales.
Principales modifications
L'interface de servoshell pour Android a été refaite.
Dans la version Android de la coquille de démonstration de Servo, l'interface du navigateur a été mise à jour et un nouvel écran d'historique a été ajouté. L'APK est devenu environ 30 % plus petit, et un bug causant un écran noir lors de la fermeture des paramètres ou du retour d'une autre application a été corrigé. Pour OpenHarmony, il est maintenant possible de fermer les onglets.Amélioration du support des langues chinoise, japonaise et coréenne.
Le moteur de rendu a corrigé le traitement du retour à la ligne pour les langues CJK, et l'interface de servoshell sous Windows, Linux et FreeBSD inclut des polices CJK. Cela est important pour l'affichage correct des sites dans des langues où les règles de césure et de sélection de polices diffèrent de celles de l'alphabet latin.Ajout d'une visualisation interactive JSON.
Si vous ouvrez un fichier JSON comme document principal, Servo l'affiche maintenant via un pretty-printer interactif. Cela rend le moteur plus pratique non seulement pour la visualisation des pages, mais aussi pour les développeurs qui doivent ouvrir des réponses API et des données structurées directement dans le navigateur.Amélioration du support de la Web Platform.
Servo prend en charge <select multiple>, <template shadowrootslotassignment>, la lecture de <video> sur OpenHarmony, le support de minimum-scale et maximum-scale dans <meta name=viewport>, la fonction CSS color-mix() avec un nombre arbitraire de couleurs, tab-size, text-align: match-parent, création de Worker à partir d'une blob URL, contexte WebGL pour OffscreenCanvas, ainsi que la propriété detail pour PerformanceMark et PerformanceMeasure.Ajout de nouvelles API DOM.
Des événements selectionchange ont été implémentés pour <input> et <textarea>, un StorageManager expérimental, activeElement pour Document et ShadowRoot, crypto.subtle.supports(), les propriétés cellPadding, cellSpacing et align de HTMLTableElement, relatedTarget pour les événements focus et blur, ainsi que transferFromImageBitmap() pour ImageBitmapRenderingContext. Les développeurs notent en particulier que Servo est devenu le premier moteur de navigateur majeur à prendre en charge crypto.subtle.supports().Amélioration de la navigation au clavier et de la gestion du focus.
L'onglet peut maintenant naviguer à travers les frontières , et Ctrl+Backspace — ou Option+Backspace sur macOS — supprime le mot entier dans les champs de saisie. Les erreurs de mise au point et d'IME dans la version de bureau de servoshell ont également été corrigées.Les outils de développement ont été étendus.
En liaison avec Firefox DevTools, les onglets Inspector, Console et Debugger ont été améliorés. Le panneau Rules affiche maintenant les déclarations provenant de @layer, et la Console et Debugger fournissent plus d'informations sur les fonctions, tableaux, objets et autres valeurs, ainsi que l'inspection des variables locales et globales via Scopes, le débogage des scripts worker et le support initial de Style Editor.La sécurité a été renforcée.
CryptoKey écrase désormais les tampons contenant des éléments clés après utilisation. Des problèmes d'accès à l'API DOM entre les documents avec des origines différentes, des erreurs d'isolement de localStorage et sessionStorage dans un iframe sandboxed et iframe srcdoc, une accessibilité incorrecte de IndexedDB dans un iframe sandboxed et worker à partir de l'URL data:, la possibilité de contournement des cookies entre certaines origines IP, la lecture de la mémoire en dehors du tampon dans texImage3D() pour WebGL2, ainsi qu'un comportement indéfini dans le gestionnaire de signaux de servoshell ont été corrigés.Les travaux sur IndexedDB et le stockage ont progressé.
IndexedDB est activé en mode expérimental dans servoshell et a été migré vers un nouveau système de « client storage », qui doit offrir à Servo un format de stockage unique sur disque et une gestion commune des quotas pour les fonctions web qui conservent des données. Les requêtes par plage clé, le traitement des transactions, des clés, des valeurs et des exceptions ont également été améliorés.L'API pour l'intégration de Servo a été mise à jour.
Étant donné qu'il s'agit de la deuxième version mensuelle de la bibliothèque Servo, les développeurs ont clarifié la politique de compatibilité : la version 0.2.0 est considérée comme une mise à jour cassante par rapport à 0.1.x. Le chargement des URL avec des en-têtes HTTP personnalisés via WebView::load_request a été ajouté, la récupération asynchrone des cookies, la suppression uniquement des cookies de session sans supprimer les cookies permanents, la transmission de destination et referrer_url lors de l'interception des requêtes, ainsi qu'un mode de stockage temporaire pour l'isolation des données de session.Des erreurs d'affichage et de comportement des pages ont été corrigées.
Les développeurs mentionnent des corrections pour console.log, les animations CSS, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, le positionnement absolu à l'intérieur de la grille, word-spacing, removeChild() sur Document et URL.revokeObjectURL(). L'apparence de et du placeholder deLa performance a été améliorée et la consommation de mémoire réduite.
Des inefficacités majeures ont été corrigées : le chargement de la spécification ECMAScript a été accéléré grâce à la refonte du traitement des attributs id et name, la première session TLS est désormais plus rapide de 30 à 60 ms, le trafic IPC entre les threads a été réduit, la consommation de mémoire des nœuds DOM Attr, Text et CharacterData a diminué de 16 octets par nœud, et une fuite de mémoire lors de la suppression des <video controls> et <audio controls> a été corrigée. La page about:memory prend désormais mieux en compte les allocations mémoire, y compris les allocations libc sur Linux.
En conséquence, Servo 0.2 est une nouvelle étape vers la transformation du projet en un moteur web intégré : l'interface mobile s'améliore, la compatibilité avec les normes web modernes s'accroît, les failles de sécurité sont comblées et l'API pour les développeurs d'applications devient progressivement plus stable.
Source : linux.org.ru




