Mise à jour Servo du mois : navigation par onglets, améliorations Windows, outils de développement et plus
(servo.org)- La mise à jour Servo d’août 2024 couvre un large éventail de sujets, des fonctionnalités du moteur web au navigateur servoshell, en passant par la qualité sous Windows, les outils de développement et la stabilité de la CI
- Les builds Nightly ajoutent notamment
HTMLDialogElement.show(), le rendu de la saisie dans<textarea>,border-image,structuredClone(),crypto.randomUUID(), la lecture WAV, leIIRFilterNodede Web Audio et la navigation avec cross-origin redirect - Les composants clés passent à SpiderMonkey 128, WebRender 0.65, wgpu 22.0 et Rust 1.80.1, tandis que WebXR et flexbox sont activés par défaut
- servoshell gagne la navigation par onglets ainsi qu’une nouvelle barre d’outils et une nouvelle page d’onglet, tandis que sous Windows les problèmes liés à la navigation clavier, à la sortie PNG, aux polices et au GPU sont améliorés
- Grâce à un nouveau runner CI, le temps de build Windows uniquement a été réduit de 70 %, et plusieurs crashs observés sur de vrais sites web ainsi que des
BorrowErrorliés au GC de SpiderMonkey ont été corrigés
Ajout de fonctionnalités de la plateforme web
- Plusieurs API web et fonctionnalités CSS ont été intégrées progressivement dans les builds nightly de Servo
- 2024-07-27 : prise en charge de base de
show()pourHTMLDialogElement - 2024-07-29 : attribut
typedeHTMLFieldSetElement - 2024-07-31 : rendu du texte saisi dans
<textarea> - 2024-07-31 : propriété CSS
border-image - 2024-08-02 : sources CSP
unsafe-eval,wasm-unsafe-eval - 2024-08-04 : lecture de fichiers audio WAV
- 2024-08-09 : API
structuredClone() - 2024-08-12 :
IIRFilterNodede Web Audio - 2024-08-13 : navigation avec cross-origin redirect
- 2024-08-23 : API
crypto.randomUUID() - 2024-08-29 : propriété CSS
clip-path- sauf les valeurs
path(),polygon(),shape(),url()
- sauf les valeurs
- 2024-07-27 : prise en charge de base de
Évolution des composants du moteur et du comportement par défaut
- Servo a mis à jour ses principaux composants de dépendance vers leurs dernières versions
-
SpiderMonkey 128
-
WebRender 0.65
-
wgpu 22.0
- Rust 1.80.1
- WebXR et flexbox sont désormais activés par défaut
- Les API web qui renvoient une Promise la rejettent désormais correctement en cas d’échec, au lieu de lever une exception
-
Améliorations de WebXR et de flexbox
- L’API WebXR a été remaniée sur plusieurs interfaces et fonctions d’entrée pour accompagner son activation par défaut
- Prise en charge de Gamepad ajoutée
- Mises à jour autour de hand input,
XRBoundedReferenceSpace,XRFrame,XRInputSource,XRPose,XRSession,XRTargetRayMode,XRView,XRWebGLLayer makeXRCompatible()peut désormais être appelé non seulement depuisWebGLRenderingContext, mais aussi depuisWebGL2RenderingContext
- flexbox a été renforcé avec plusieurs fonctions de layout courantes
- propriété
gap align-content: stretch- valeurs
start,enddealign-items,align-self - prise en charge de base de
flex-direction: column,column-reverse
- propriété
- Le positionnement et le calcul des tailles des flex items sont également plus précis
position: relativeest pris en charge sur les flex items- Le
z-indexd’un flex item crée toujours un stacking context - Les intrinsic size correctes sont appliquées aux flex items et aux flex containers
- Le travail sur la prise en charge du texte bidirectionnel se poursuit
- Il inclut des changements dans l’architecture du fragment tree et des travaux sur l’interface
writing-mode - La propriété
unicode-bidiet l’attributdirsont partiellement pris en charge - La valeur
dir=auton’est pas encore prise en charge
- Il inclut des changements dans l’architecture du fragment tree et des travaux sur l’interface
Navigateur servoshell et qualité sous Windows
- Une nouvelle barre d’outils et la navigation par onglets ont été ajoutées à Servo-the-browser
- La nouvelle page d’onglet utilise une nouvelle API permettant aux embedders Servo d’enregistrer un custom protocol handler
- La qualité d’exécution sous Windows a aussi été améliorée sur plusieurs points
- La navigation clavier a été corrigée
- Le comportement de sortie PNG de
--outputa été corrigé - Des bugs liés aux polices et au GPU ont été corrigés
- Les correctifs Windows sont liés à des problèmes de glyphes mal alignés et de couleurs incorrectes sur servo.org et duckduckgo.com, ainsi qu’à des images corrompues sur wikipedia.org
Outils de développement et workflow des développeurs
- La prise en charge des devtools s’est enrichie après le travail du dernier mois d’un projet de stage
- Servo prend en charge l’arborescence HTML
- Il prend en charge les panneaux Styles et Computed
- Sur macOS, le lancement de servoshell juste après la compilation est désormais plus rapide de quelques secondes
- Dans la CI, clippy s’exécute désormais dans un job de linting dédié, séparé du tidy check existant
- Grâce à des dons, un nouveau runner CI pour les builds Windows a été ajouté, réduisant de 70 % le temps de build Windows uniquement
- Un nouveau runner pour les builds Linux devrait être ajouté prochainement, ce qui accélérera les WPT try builds
- Une réunion de triage pour examiner les issues GitHub est en cours, et la prochaine réunion de triage des issues Servo aura lieu le 2 septembre à 10:00 UTC
- Plus de détails dans project#99
Améliorations de la stabilité du moteur
- En août, de nombreux crash bugs observés sur de vrais sites web ont été corrigés
- Les principaux correctifs concernent le rendu, le reflow et le comportement du parseur HTML
- Crash pendant le rendu de floats à proximité de tableaux dans la spécification HTML
- Crash sur w3schools.com causé par un reflow explicite inutile
- Correction de crashs sur plusieurs sites comme kilonova.ro et tweakers.net en rendant le parseur HTML réentrant
- D’autres crashs survenant dans les chemins plateforme, API et parsing ont également diminué
- crash lors d’un redimensionnement de fenêtre pendant l’utilisation de WebGL sur macOS
- crash pendant le rendu de texte avec des grapheme clusters très longs
- crash pendant le rendu du caractère tabulation avec certaines polices
- crash du parseur après un appel à
window.stop() - crash lors du passage de certaines valeurs à
console.log() - crash pendant le parsing de certaines valeurs de
<img srcset> - crash pendant le parsing de certaines valeurs de headers HTTP
- crash lors de la définition de
window.openerdans certaines situations - crash lors du retrait d’un iframe du document
- crash lors d’un appel à
new AudioContext()avec des options non prises en charge - crash intermittent dans
WRSceneBuilderà l’arrêt de Servo
- Plusieurs crashs de type BorrowError survenant dans le GC de SpiderMonkey ont été corrigés
- Des travaux sont en cours pour empêcher ce type de bug via l’analyse statique
- Lors de la navigation, les objets DOM Window ne fuitent plus
- Sur Unix, servoshell termine désormais anormalement en cas de panic, permettant aux web tests d’enregistrer correctement le résultat comme “CRASH”
État des dons
- Servo reçoit actuellement 3 077 dollars par mois en dons récurrents, soit une hausse de 4,1 % par rapport à juillet
- Cela inclut 12 dons via LFX, mais Servo prévoit bientôt d’arrêter d’accepter les dons via LFX
- Les dons récurrents doivent être transférés vers GitHub Sponsors ou Open Collective
- Servo est aussi référencé sur thanks.dev, et trois organisations GitHub qui dépendent de Servo le soutiennent déjà
- Si vous utilisez des bibliothèques Servo comme
url,html5ever,selectors,cssparser, vous pouvez contribuer à la communauté via thanks.dev - L’utilisation des fonds est décidée de manière transparente par le Technical Steering Committee, avec plus de détails sur la page Sponsorship
1 commentaires
Commentaires sur Hacker News
Je suis surpris par le montant très faible du sponsoring. Je me demande s’ils ne comptabilisent que les dons de particuliers tiers, hors grandes organisations.
Vu le nombre de personnes qui dénoncent la mainmise de Google sur les navigateurs web via chrom(ium)e, je m’attendais à ce que davantage de particuliers ou d’entreprises veuillent accélérer l’émergence d’un concurrent.
Il y avait aussi probablement l’idée qu’il n’est pas réaliste de créer un tout nouveau navigateur avec un tout nouveau moteur en partant de zéro, donc à quoi bon financer ça. Heureusement, Ladybird a peut-être changé la donne sur ce point.
Et parmi les organisations qui ont cet argent, certaines ont déjà renoncé. Microsoft, par exemple, qui a basculé Edge vers Chromium il y a quelques années. Beaucoup de gens préféreraient aussi probablement donner à Firefox, l’alternative établie à Chromium, mais il est en pratique assez difficile de faire un don spécifiquement destiné au développement de Firefox.
La plupart des gens ici semblent seulement se plaindre de l’état déplorable du web sans rien faire concrètement.
Montrons tous des chiffres solides.
La communauté HN pourrait facilement dépasser les 100 000 dollars en une journée. On a enfin un nouveau navigateur auquel on peut vraiment croire, alors faisons-le.
C’est intéressant de voir que Servo est toujours en vie. Je les soutiens.
Mais je trouve positif qu’il existe un effort sérieux pour développer des navigateurs et moteurs alternatifs. Le navigateur Ladybird est encore bien plus loin d’un produit mature, mais c’est aussi un projet dont l’existence fait plaisir.
En récupérant les dernières modifications et en regardant les nouveaux onglets, j’ai été surpris de voir que la prise en charge RTL était arrivée. Elle n’existait pas il y a quelques semaines.
La PR fusionnée est ici : https://github.com/servo/servo/pull/33148
Servo n’avait-il pas été abandonné ?