De release van de browser-engine Servo 0.1.0 en de bijbehorende demo-browser ServoShell, geschreven in Rust, is uitgebracht. Klaar om stellingen zijn samengesteld voor Linux, Android, macOS en Windows. Naast afzonderlijke stellingen wordt Servo nu ook geleverd in de vorm van een crate-pakket, waarmee de engine als bibliotheek kan worden gebruikt.
Servo 0.1.0 is de eerste release die een lange termijn ondersteuning (LTS) cyclus biedt. Nieuwe LTS-takken zullen elke 6 maanden worden gepubliceerd op basis van de volgende tussentijdse release. De LTS-releases zullen 9 maanden ondersteuning krijgen (waarvan 3 maanden voor de overstap naar de nieuwe LTS-tak). LTS-releases verschillen van reguliere releases door de publicatie van updates met kwetsbaarheidoplossingen in de servo-bibliotheek, JavaScript-engine en afhankelijkheden. De LTS-tak zal nuttig zijn voor ontwikkelaars die Servo in hun projecten integreren en niet elke maand willen overstappen naar een nieuwe tussentijdse release met mogelijk veranderingen in de API.
De release Servo 0.1.0 LTS is gebaseerd op de enkele dagen geleden samengestelde tussentijdse versie 0.0.6, waarin de volgende nieuwe functies zijn geïmplementeerd:
- In het HTML-element 'button' zijn de attributen 'command' en 'commandfor' geïmplementeerd, die in knoppen gebruikt kunnen worden in plaats van de attributen 'popovertargetaction' en 'popovertarget' voor de declaratieve configuratie van interactie met het menu dat wordt opgeroepen door op de knop te klikken.
- Er is een CSS-selector ':modal' toegevoegd, die kan bepalen dat de dialoog die is gemaakt via het element
- De CSS-regel @property is geïmplementeerd, waarmee je eigen CSS-eigenschappen kunt registreren.
- CSS-eigenschappen 'alignment-baseline' en 'baseline-shift' zijn toegevoegd voor verticale tekstuitlijning.
- Ondersteuning is toegevoegd voor de header 'Content-Security-Policy: base-uri', die de URL's beperkt die kunnen worden gebruikt in het HTML-element .
- Deelondersteuning is toegevoegd voor vertraagde laadtijd van iframe-blokken, waarbij inhoud buiten het zichtbare gebied niet wordt geladen totdat de gebruiker de pagina naar de plaats scrolt die direct voorafgaat aan het element. Vertraagde laadtijd van pagina's wordt ingeschakeld via het attribuut 'loading=lazy' in de iframe-tag ().
- Deelondersteuning is toegevoegd voor de CSS-eigenschap 'transform-style: preserve-3d' voor het positioneren van kindelementen in 3D-ruimte.
- De gebeurtenissen pointermove, pointerdown, pointerup en pointercancel zijn geïmplementeerd.
- De rotatie van afbeeldingen op basis van EXIF-gegevens is verzekerd.
- Er is ondersteuning voor de omgevingsvariabele LANG toegevoegd om de standaardtaal voor de 'Accept-Language'-header en de navigator.language-eigenschap te selecteren.
- De API's Pointer Events en UserActivation zijn toegevoegd.
- De methoden import.meta.resolve(), formData(), toJSON(), createIndex(), deleteIndex() en index() zijn geïmplementeerd.
- In de demonstratiebrowser servoshell zijn de pagina's servo:preferences (GUI-configurator) en servo:config (wijzigen van individuele parameters in de stijl van about:config) geïmplementeerd voor het wijzigen van instellingen. Ondersteuning voor het herladen van de pagina door op F5 te drukken is toegevoegd.

- In de ontwikkelaarstools heeft de inspectiemodus ondersteuning gekregen voor het bewerken van DOM-kenmerken, en de webconsole biedt een voorbeeld van objecten die via console.log() worden doorgegeven. In de debugger is de mogelijkheid toegevoegd om de uitvoering van scripts te pauzeren en te hervatten.
- De API voor het integreren van de browser-engine in applicaties is uitgebreid.
De Servo-engine is oorspronkelijk ontwikkeld door Mozilla, maar is vervolgens onder de hoede van de Linux Foundation gekomen. Servo onderscheidt zich door ondersteuning voor multithreading bij het renderen van webpagina's, het parallel verwerken van DOM-operaties (Document Object Model) en het gebruik van de veilige programmeermiddelen die door de programmeertaal Rust worden geboden. Servo is oorspronkelijk ontworpen met ondersteuning voor het opsplitsen van de DOM-code en rendering in kleinere taken die parallel kunnen worden uitgevoerd en efficiënter gebruikmaken van de middelen van multicore CPU's. Bepaalde delen van Servo, zoals de multithreading CSS-engine en het renderingsysteem WebRender, zijn al geïntegreerd in Firefox.
Bron: opennet.ru

