Die Veröffentlichung der Version 0.0.5 des Browser-Engines Servo und des gleichzeitig entwickelten Demo-Browsers ServoShell, die in der Programmiersprache Rust geschrieben sind, wurde bekanntgegeben. Die fertigen Builds sind für Linux, Android, macOS und Windows verfügbar.
Die Engine wurde ursprünglich von der Firma Mozilla entwickelt, ging dann jedoch unter die Schirmherrschaft der Linux Foundation. Servo zeichnet sich durch die Unterstützung von Multithreading bei der Darstellung von Webseiten, das Parallelisieren von DOM-Operationen (Document Object Model) und die Nutzung der von Rust bereitgestellten Mechanismen für sicheres Programmieren aus. Servo wurde ursprünglich mit Unterstützung für die Unterteilung von DOM-Code und Rendering in kleinere Teilaufgaben geschaffen, die parallel ausgeführt werden können und die Ressourcen moderner Mehrkern-CPUs effizienter nutzen. Teile von Servo, wie die Multithread-CSS-Engine und das Rendering-System WebRender, sind bereits in Firefox integriert.

Hauptänderungen:
- Im HTML-Element
- Die Unterstützung für das vorzeitige Laden von Ressourcen wurde hinzugefügt, durch Verwendung des Tags , mit dem Ressourcen geladen werden können, ohne auf deren Anfrage zu warten. So können beispielsweise bestimmte CSS-Dateien, Skripte, Videos und Bilder sofort geladen werden.
- In den HTML-Elementen «style» und «link» wurde die Unterstützung der Eigenschaft «blocking» implementiert, um das Rendern der Seite bis zum Abschluss des Ladevorgangs der Ressource zu pausieren.
- Im HTML-Element «img» wurde die Unterstützung der Eigenschaft «align» hinzugefügt, um die Ausrichtung des Bildes zu steuern.
- Im HTML-Element «select» wurde die Unterstützung der Eigenschaft «disabled» hinzugefügt, um das Dropdown-Menü zu deaktivieren.
- Die Unterstützung der Eigenschaft «cursor-color» wurde hinzugefügt, um die Farbe des Cursors in Eingabefeldern zu ändern.
- Die Unterstützung für die Anwendung der CSS-Eigenschaft «content» wurde hinzugefügt, um jedes HTML-Element durch ein Bild zu ersetzen.
- Die Unterstützung des Pseudo-Elements «::details-content» wurde hinzugefügt, um den Stil des Inhalts, der über das HTML-Element definiert ist, zu ändern.
- Im HTML-Element wurde die Unterstützung des Pseudo-Klassen «:open» hinzugefügt, die beim Öffnen des Dialogs aktiviert wird.
- Für das HTML-Element wurde die Unterstützung der Pseudo-Klasse «:active» implementiert, die im Zeitraum vom Drücken bis zum Loslassen der Taste wirkt.
- Eine API-Origin wurde hinzugefügt, um Informationen über die Quelle des Inhalts auf der Ebene der Verbindung «Protokoll + Domain haben + Port.»
- Die Eigenschaft MouseEvent.detail wurde implementiert, um Informationen über die Art des Klicks (einzelner, doppelter) zu erhalten.
- Im Request-Objekt wurde das Attribut „keepalive“ hinzugefügt, um festzustellen, ob die Verbindung im Status keepalive ist.
- Unterstützung für das Laden von Modulen über Import-Ausdrücke im JSON-Format wurde hinzugefügt.
- Die Möglichkeit zur Angabe von Attributen zur Festlegung des Inhaltstyps beim Import über den Import-Ausdruck wurde hinzugefügt.
- Unterstützung für zirkuläre Importe von JavaScript-Modulen wurde hinzugefügt.
- Die Unterstützung für die Schnittstelle navigator.sendBeacon wurde standardmäßig aktiviert, um asynchron kleine Datenmengen vom Browser zu übertragen. Server.
- Die Einstellung https_proxy sowie die Umgebungsvariablen HTTPS_PROXY und NO_PROXY wurden hinzugefügt, um die Arbeit über HTTPS-Proxys zu ermöglichen.
- Im API Crypto wurde die Unterstützung für die Algorithmen ML-KEM, ML-DSA und AES-OCB hinzugefügt.
- Unterstützung für Cross-Compilation unter Verwendung der Windows-Plattform als Host wurde hinzugefügt.
- Die Einstellung network_connection_timeout wurde hinzugefügt, um die Zeitüberschreitung für den Aufbau einer Netzwerkverbindung (standardmäßig 15 Sekunden) festzulegen.
Quelle: opennet.ru
