- Das Servo-Update für August 2024 deckt ein breites Spektrum ab: von Web-Engine-Funktionen über den servoshell-Browser, Windows-Qualität, Entwicklertools bis hin zur CI-Stabilität
- In den Nightly-Builds wurden
HTMLDialogElement.show(), Rendering von Eingaben in<textarea>,border-image,structuredClone(),crypto.randomUUID(), WAV-Wiedergabe, Web AudioIIRFilterNode, Navigation über cross-origin redirects und mehr hinzugefügt - Die zentralen Komponenten wurden auf SpiderMonkey 128, WebRender 0.65, wgpu 22.0 und Rust 1.80.1 aktualisiert; WebXR und flexbox sind nun standardmäßig aktiviert
- servoshell erhielt Tabbed Browsing sowie eine neue Toolbar und eine neue Tab-Seite; unter Windows wurden Tastaturnavigation, PNG-Ausgabe sowie Probleme mit Fonts und GPU verbessert
- Mit neuen CI-Runnern wurde die reine Windows-Build-Zeit um 70 % verkürzt; außerdem wurden mehrere Crashes auf realen Websites sowie BorrowErrors im Zusammenhang mit der SpiderMonkey-GC behoben
Neue Web-Plattform-Funktionen
- In die Servo-Nightly-Builds wurden schrittweise mehrere Web-APIs und CSS-Funktionen aufgenommen
- 2024-07-27: grundlegende Unterstützung für
show()vonHTMLDialogElement - 2024-07-29:
type-Attribut vonHTMLFieldSetElement - 2024-07-31: Rendering von in
<textarea>eingegebenem Text - 2024-07-31: CSS-Eigenschaft
border-image - 2024-08-02: CSP-Quellen
unsafe-eval,wasm-unsafe-eval - 2024-08-04: Wiedergabe von WAV-Audiodateien
- 2024-08-09: API
structuredClone() - 2024-08-12:
IIRFilterNodein Web Audio - 2024-08-13: Navigation über cross-origin redirects
- 2024-08-23: API
crypto.randomUUID() - 2024-08-29: CSS-Eigenschaft
clip-path- Werte wie
path(),polygon(),shape()undurl()sind ausgenommen
- Werte wie
- 2024-07-27: grundlegende Unterstützung für
Änderungen an Engine-Komponenten und Standardverhalten
- Servo hat wichtige Abhängigkeiten auf neuere Versionen aktualisiert
-
SpiderMonkey 128
-
WebRender 0.65
-
wgpu 22.0
- Rust 1.80.1
- WebXR und flexbox sind standardmäßig aktiviert
- Web-APIs, die Promises zurückgeben, rejecten Promises bei Fehlern nun korrekt, statt Exceptions zu werfen
-
Verbesserungen bei WebXR und flexbox
- Die WebXR-API wurde passend zur standardmäßigen Aktivierung bei mehreren Interfaces und Eingabefunktionen überarbeitet
- Unterstützung für Gamepads wurde hinzugefügt
- Updates rund um hand input,
XRBoundedReferenceSpace,XRFrame,XRInputSource,XRPose,XRSession,XRTargetRayMode,XRViewundXRWebGLLayerwurden integriert makeXRCompatible()kann nun nicht nur aufWebGLRenderingContext, sondern auch aufWebGL2RenderingContextaufgerufen werden
- flexbox wurde um häufig genutzte Layout-Funktionen erweitert
- Eigenschaft
gap align-content: stretch- Werte
startundendfüralign-itemsundalign-self - grundlegende Unterstützung für
flex-direction: columnundcolumn-reverse
- Eigenschaft
- Auch Positionierung und Größenberechnung von flex items wurden genauer
position: relativewird bei flex items unterstütztz-indexeines flex items erzeugt immer einen stacking context- Für flex items und flex container wird die korrekte intrinsic size angewendet
- Die Unterstützung für bidirektionalen Text ist in Arbeit
- Dazu gehören Änderungen an der Fragment-Tree-Architektur und Arbeiten am
writing-mode-Interface - Die Eigenschaften
unicode-bidiunddirwerden teilweise unterstützt - Der Wert
dir=autowird noch nicht unterstützt
- Dazu gehören Änderungen an der Fragment-Tree-Architektur und Arbeiten am
servoshell-Browser und Windows-Qualität
- Servo-the-browser hat eine neue Toolbar und Tabbed Browsing erhalten
- Die neue Tab-Seite nutzt eine neue API, mit der Servo-Embedder custom protocol handler registrieren können
- Auch die Ausführungsqualität unter Windows wurde in mehreren Bereichen verbessert
- Die Tastaturnavigation wurde korrigiert
- Das Verhalten der PNG-Ausgabe von
--outputwurde korrigiert - Fehler rund um Fonts und GPU wurden behoben
- Die Windows-bezogenen Fixes betreffen unter anderem Probleme auf servo.org und duckduckgo.com, bei denen Glyphen falsch ausgerichtet waren und Farben nicht stimmten, sowie beschädigte Bilder auf wikipedia.org
Entwicklertools und Entwickler-Workflow
- Die DevTools-Unterstützung wurde nach dem letzten Monat eines Internship-Projekts ausgebaut
- Servo unterstützt einen HTML tree
- Die Panels Styles und Computed werden unterstützt
- Unter macOS startet servoshell direkt nach dem Build einige Sekunden schneller
- In der CI läuft clippy in einem eigenen Linting-Job, getrennt vom bestehenden tidy check
- Durch Spenden wurde ein neuer CI-Runner für Windows-Builds hinzugefügt, wodurch die Windows-only build time um 70 % sank
- Ein neuer Runner für Linux-Builds soll ebenfalls bald hinzukommen; dadurch sollen WPT-Try-Builds schneller werden
- Für die Untersuchung von GitHub-Issues laufen Triage-Meetings; das nächste Servo issue triage meeting findet am 2. September um 10:00 UTC statt
- Weitere Details stehen in project#99
Verbesserungen der Engine-Stabilität
- Im August wurden zahlreiche Crash-Bugs behoben, die auf realen Websites auftraten
- Wichtige Fixes erstrecken sich über Rendering, Reflow und das Verhalten des HTML-Parsers
- Crash beim Rendern von Floats in der Nähe von Tabellen in der HTML spec
- Crash auf w3schools.com durch unnötigen expliziten Reflow
- Mehrere Website-Crashes, etwa auf kilonova.ro und tweakers.net, wurden behoben, indem der HTML-Parser re-entrant gemacht wurde
- Darüber hinaus wurden Crashes in Plattform-, API- und Parsing-Pfaden reduziert
- Crash bei Größenänderung des Fensters unter macOS während der Nutzung von WebGL
- Crash beim Rendern von Text mit sehr langen grapheme clusters
- Crash beim Rendern von Tab-Zeichen in bestimmten Fonts
- Parser-Crash nach Aufruf von
window.stop() - Crash beim Übergeben bestimmter Werte an
console.log() - Crash beim Parsen bestimmter
<img srcset>-Werte - Crash beim Parsen bestimmter HTTP-Header-Werte
- Crash beim Setzen von
window.openerin bestimmten Situationen - Crash beim Entfernen eines iframe aus dem Dokument
- Crash beim Aufruf von
new AudioContext()mit nicht unterstützten Optionen - Sporadischer Crash in
WRSceneBuilderbeim Beenden von Servo
- Mehrere BorrowError-Crashes in der SpiderMonkey-GC wurden behoben
- Es laufen Arbeiten, diese Art von Bugs durch statische Analyse zu verhindern
- Beim Navigieren werden DOM-Window-Objekte nicht mehr geleakt
- Unter Unix beendet sich servoshell bei einem Panic abnormal, sodass Web-Tests das Ergebnis korrekt als „CRASH“ erfassen können
Spendenstatus
- Servo erhält derzeit 3.077 US-Dollar pro Monat aus wiederkehrenden Spenden, 4,1 % mehr als im Juli
- Darin enthalten sind Spenden von 12 Personen über LFX, Servo wird jedoch demnächst keine LFX-Spenden mehr annehmen
- Wiederkehrende Spenden sollten zu GitHub Sponsors oder Open Collective umgezogen werden
- Servo ist auch bei thanks.dev registriert; drei GitHub-Organisationen, die von Servo abhängen, sponsern bereits
- Wer Servo-Bibliotheken wie
url,html5ever,selectorsodercssparsernutzt, kann über thanks.dev zur Community beitragen - Über die Verwendung der Mittel entscheidet das Technical Steering Committee transparent; weitere Details stehen auf der Sponsorship page
1 Kommentare
Meinungen auf Hacker News
Ich bin überrascht, dass der Umfang der Unterstützung so gering ist. Ich frage mich, ob nur persönliche Drittmittel von Einzelpersonen außerhalb großer Organisationen gezählt wurden.
Wenn man bedenkt, wie viele Leute lautstark sagen, dass Webbrowser über chrom(ium)e von Google beherrscht werden, hätte ich erwartet, dass mehr Einzelpersonen oder Unternehmen ein Interesse daran haben, dass schneller ein Konkurrent entsteht.
Dazu kommt wohl die Wahrnehmung, dass es unrealistisch ist, von Grund auf einen völlig neuen Browser mit einer neuen Engine zu bauen; warum sollte man das also unterstützen? Zum Glück hat Ladybird diesen Punkt vielleicht verändert.
Und einige Organisationen, die dieses Geld hätten, haben bereits aufgegeben. Microsoft hat Edge vor ein paar Jahren auf Chromium umgestellt. Außerdem würden viele vermutlich lieber an Firefox spenden, die etablierte Alternative zu Chromium; allerdings ist es in der Praxis ziemlich schwierig, gezielt für die Firefox-Entwicklung zu spenden.
Die meisten hier scheinen sich nur über den schrecklichen Zustand des Webs zu beschweren und tatsächlich nichts zu tun.
Lasst uns alle starke Zahlen zeigen.
Die HN-Community könnte an einem Tag locker über 100.000 Dollar kommen. Es gibt einen neuen Browser, auf den man wirklich hoffen kann, also lasst es uns schaffen.
Spannend zu sehen, dass Servo weiterlebt. Ich drücke die Daumen.
Trotzdem finde ich es gut, dass es ernsthafte Bemühungen gibt, alternative Browser und Engines zu entwickeln. Der Ladybird-Browser ist von einem reifen Produkt noch viel weiter entfernt, aber allein seine Existenz ist ein erfreuliches Projekt.
Ich habe die neuesten Änderungen gezogen und mir die neuen Tabs angesehen; dabei war ich überrascht, dass es jetzt RTL-Unterstützung gibt. Vor ein paar Wochen wurde das noch nicht unterstützt.
Der gemergte PR ist hier: https://github.com/servo/servo/pull/33148
War Servo nicht aufgegeben worden?