Opublikowano wersję silnika przeglądarki Servo 0.0.5 oraz rozwijaną razem z nim demo przeglądarkę ServoShell, napisaną w języku Rust. Gotowe wersje zostały stworzone dla systemów Linux, Android, macOS i Windows.
Silnik został pierwotnie rozwinięty przez firmę Mozilla, ale później przeszedł pod skrzydła organizacji Linux Foundation. Servo wyróżnia się wsparciem dla wielowątkowego renderowania stron internetowych, równoległym przetwarzaniem operacji z DOM (Document Object Model) oraz wykorzystywaniem mechanizmów bezpiecznego programowania zapewnianych przez język Rust. Servo zostało pierwotnie stworzone z myślą o rozbiciu kodu DOM i renderowaniu na mniejsze podzadania, które mogą być wykonywane równolegle, co pozwala na bardziej efektywne wykorzystanie zasobów wielordzeniowych CPU. W Firefoksie zintegrowano już niektóre części Servo, takie jak wielowątkowy silnik CSS oraz system renderowania WebRender.

Główne zmiany:
- Do elementu HTML <audio> dodano wsparcie dla odtwarzania plików w formacie OGG.
- Dodano wsparcie dla wstępnego ładowania zasobów, za pomocą tagu <link rel=preload>, które umożliwia zorganizowanie ładowania zasobów bez czekania na ich żądanie, na przykład można od razu załadować określone pliki CSS, skrypty, wideo i obrazy.
- W elementach HTML 'style' i 'link' wdrożono wsparcie dla właściwości 'blocking', aby wstrzymać wyświetlanie strony do momentu zakończenia ładowania zasobu.
- Do elementu HTML 'img' dodano wsparcie dla właściwości 'align' do zarządzania wyrównywaniem obrazu.
- Do elementu HTML 'select' dodano wsparcie dla właściwości 'disabled' do dezaktywacji listy rozwijanej.
- Dodano wsparcie dla właściwości 'cursor-color' do zmiany koloru kursora w polach wejściowych.
- Dodano wsparcie dla zastosowania właściwości CSS 'content' do zastąpienia dowolnego elementu HTML obrazem.
- Dodano wsparcie dla pseudo-elementu '::details-content' do zmiany stylu treści określonej za pomocą elementu HTML <details>.
- Do elementu HTML <details> dodano wsparcie dla pseudoklasy ':open', która wyzwala się podczas otwierania dialogu.
- Dla elementu HTML <input type=button> wdrożono wsparcie dla pseudoklasy ':active', działającej w czasie od naciśnięcia do zwolnienia przycisku.
- Dodano API Origin do uzyskiwania informacji o źródle kontentu na poziomie powiązania 'protokół + domenę + port.
- Wprowadzono właściwość MouseEvent.detail do uzyskiwania informacji o charakterze kliknięcia (pojedyncze, podwójne).
- Do obiektu Request dodano właściwość 'keepalive' do określenia, czy połączenie jest w stanie keepalive.
- Dodano wsparcie dla importowania modułów w formacie JSON za pomocą wyrażeń import.
- Dodano możliwość określenia atrybutów dla wskazania typu zawartości przy imporcie za pomocą wyrażenia import.
- Dodano wsparcie dla cyklicznego importu modułów JavaScript.
- Włączono domyślnie wsparcie dla interfejsu navigator.sendBeacon, do asynchronicznego przesyłania małych porcji danych z przeglądarki na serwer.
- Dodano konfigurację https_proxy oraz zmienne środowiskowe HTTPS_PROXY i NO_PROXY do organizacji pracy poprzez proxy HTTPS.
- W API Crypto dodano wsparcie dla algorytmów ML-KEM, ML-DSA oraz AES-OCB.
- Dodano wsparcie dla krzyżowego kompilowania z użyciem platformy Windows jako hosta.
- Dodano ustawienie network_connection_timeout do określenia limitu czasu na nawiązanie połączenia sieciowego (domyślnie 15 sekund).
Źródło: opennet.ru
