1 points par GN⁺ 2024-09-01 | 1 commentaires | Partager sur WhatsApp
  • 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, le IIRFilterNode de 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 BorrowError lié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() pour HTMLDialogElement
    • 2024-07-29 : attribut type de HTMLFieldSetElement
    • 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 : IIRFilterNode de 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()

É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 depuis WebGLRenderingContext, mais aussi depuis WebGL2RenderingContext
  • flexbox a été renforcé avec plusieurs fonctions de layout courantes
    • propriété gap
    • align-content: stretch
    • valeurs start, end de align-items, align-self
    • prise en charge de base de flex-direction: column, column-reverse
  • Le positionnement et le calcul des tailles des flex items sont également plus précis
    • position: relative est pris en charge sur les flex items
    • Le z-index d’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-bidi et l’attribut dir sont partiellement pris en charge
    • La valeur dir=auto n’est pas encore prise en charge

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 --output a é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

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.opener dans 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

 
GN⁺ 2024-09-01
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 a sans doute une sorte de tragédie des biens communs : personne ne pense que c’est à lui de financer ce genre d’effort.
      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.
    • Je pense qu’une bonne partie de ceux qui parlent fort ne sont pas des gens qui ont beaucoup d’argent. Ni forcément des organisations qui en ont.
      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.
    • Les tonneaux vides font le plus de bruit. Prendre la parole sur un sujet ne coûte pas cher, mais consacrer du temps ou de l’argent à cette cause, si.
    • C’est un peu triste. Rien qu’avec HN, si chacun donnait 5 dollars par mois, l’objectif serait probablement atteint.
      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.

    • J’espère vraiment que le soutien se traduira aussi par des dons. Si tous les utilisateurs actifs de HN donnaient ne serait-ce que 10 dollars, cela représenterait déjà une somme énorme.
  • C’est intéressant de voir que Servo est toujours en vie. Je les soutiens.

    • D’accord. Il reste encore beaucoup de chemin avant d’en faire une vraie alternative aux autres navigateurs et moteurs.
      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.
    • Ne te contente pas de soutenir moralement, fais aussi un don :)
  • 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é ?

    • Mozilla l’a abandonné, mais d’après Wikipedia, la Linux Foundation a repris le projet.