Die Veröffentlichung der Browser-Engine Servo 0.0.5 und des dazugehörigen Demonstrationsbrowsers ServoShell, die in der Programmiersprache Rust geschrieben wurden, wurde bekanntgegeben. Fertige Builds sind für Linux, Android, macOS und Windows verfügbar.
Die Engine wurde ursprünglich von Mozilla entwickelt, ist jedoch mittlerweile unter dem Dach der Linux Foundation angelangt. Servo zeichnet sich durch die Unterstützung von Multi-Threaded Rendering von Webseiten, Parallelisierung von DOM-Operationen (Document Object Model) und die Nutzung der sicheren Programmiermechanismen von Rust aus. Servo wurde von Anfang an mit der Unterstützung für die Aufteilung des DOM-Codes und das Rendering in kleinere Teilaufgaben erstellt, die parallel ausgeführt werden können, um die Ressourcen von Multi-Core-CPUs effizienter zu nutzen. Einige Teile von Servo, wie die Multi-Threaded CSS-Engine und das Rendering-System WebRender, sind bereits in Firefox integriert.

Wesentliche Änderungen:
- Im HTML-Element
- Unterstützung für das Preloading von Ressourcen wurde hinzugefügt, indem das Tag verwendet wird, mit dem Ressourcen geladen werden können, ohne darauf zu warten, dass sie angefordert werden. Beispielsweise können bestimmte CSS-Dateien, Skripte, Videos und Bilder sofort geladen werden.
- In den HTML-Elementen „style“ und „link“ wurde die Unterstützung für die Eigenschaft „blocking“ implementiert, um die Darstellung der Seite bis zum Abschluss des Ressourcenzugriffs zu pausieren.
- Im HTML-Element „img“ wurde die Unterstützung für die Eigenschaft „align“ hinzugefügt, um die Ausrichtung des Bildes zu steuern.
- Im HTML-Element „select“ wurde die Unterstützung für die Eigenschaft „disabled“ hinzugefügt, um die Dropdown-Liste zu deaktivieren.
- Unterstützung für die Eigenschaft „cursor-color“ wurde hinzugefügt, um die Farbe des Cursors in Eingabefeldern zu ändern.
- Unterstützung für die Anwendung der CSS-Eigenschaft „content“ wurde hinzugefügt, um jedes HTML-Element durch ein Bild zu ersetzen.
- Unterstützung für das Pseudo-Element „::details-content“ wurde hinzugefügt, um den Stil des Inhalts, der über das HTML-Element festgelegt wird, zu ändern.
- Im HTML-Element wurde die Unterstützung für die Pseudo-Klasse „:open“ hinzugefügt, die beim Öffnen des Dialogs aktiviert wird.
- Für das HTML-Element wurde die Unterstützung für die Pseudoklasse «:active» implementiert, die von dem Zeitpunkt des Drückens bis zum Loslassen der Taste wirkt.
- Die Origin-API wurde hinzugefügt, um Informationen über die Quelle des Inhalts auf der Ebene der Verbindung «Protokoll + Hosting + Port.» abzurufen.
- Die Eigenschaft MouseEvent.detail wurde implementiert, um Informationen über die Art des Klicks (einfacher, doppelter Klick) zu erhalten.
- Im Request-Objekt wurde die Eigenschaft «keepalive» hinzugefügt, um zu bestimmen, ob die Verbindung im Zustand keepalive ist.
- Die Unterstützung für das Laden von Modulen über Import-Ausdrücke im JSON-Format wurde hinzugefügt.
- Die Möglichkeit, Attribute zur Angabe des Inhalts-Typs beim Import über den Import-Ausdruck zu definieren, wurde hinzugefügt.
- Die Unterstützung für zirkulären Import von JavaScript-Modulen wurde hinzugefügt.
- Die Unterstützung für das Interface navigator.sendBeacon wurde standardmäßig aktiviert, um kleine Datenmengen asynchron vom Browser zu übertragen. der Server.
- Die Einstellungen https_proxy sowie die Umgebungsvariablen HTTPS_PROXY und NO_PROXY wurden hinzugefügt, um die Arbeit über HTTPS-Proxys zu ermöglichen.
- Im Crypto-API wurde die Unterstützung für die Algorithmen ML-KEM, ML-DSA und AES-OCB hinzugefügt.
- Die Unterstützung für die Cross-Compilation unter Verwendung der Windows-Plattform als Host wurde hinzugefügt.
- Die Einstellung network_connection_timeout wurde hinzugefügt, um den Timeout für die Einrichtung der Netzwerkverbindung festzulegen (Standard 15 Sekunden).
Quelle: opennet.ru
