È stata pubblicata la versione 0.0.5 del motore browser Servo e il relativo browser demo ServoShell, scritti in Rust. Le build pronte sono state formate per Linux, Android, macOS e Windows.
Il motore è stato originariamente sviluppato da Mozilla, ma successivamente è stato adottato dalla Linux Foundation. Servo si distingue per il supporto del rendering web multithreading, la parallelizzazione delle operazioni sul DOM (Document Object Model) e l'utilizzo dei meccanismi di programmazione sicura forniti da Rust. Servo è stato creato con il supporto per la suddivisione del codice DOM e il rendering in compiti più piccoli, che possono essere eseguiti in parallelo e sfruttare più efficacemente le risorse delle CPU multi-core. Alcuni componenti di Servo, come il motore CSS multithreading e il sistema di rendering WebRender, sono già integrati in Firefox.

Principali modifiche:
- Nel tag HTML
- È stata aggiunta la supporto per il caricamento preventivo delle risorse, utilizzando il tag , che consente di caricare le risorse senza attendere che vengano richieste, ad esempio, è possibile caricare immediatamente determinati file CSS, script, video e immagini.
- Negli elementi HTML «style» e «link» è stata implementata la supporto della proprietà «blocking» per sospendere il rendering della pagina fino al termine del caricamento della risorsa.
- Nell'elemento HTML «img» è stata aggiunta la supporto della proprietà «align» per controllare l'allineamento dell'immagine.
- Nell'elemento HTML «select» è stata aggiunta la supporto della proprietà «disabled» per disattivare il menu a discesa.
- È stata aggiunta la supporto per la proprietà «cursor-color» per cambiare il colore del cursore nei campi di input.
- È stata aggiunta la supporto per l'applicazione della proprietà CSS «content» per sostituire qualsiasi elemento HTML con un'immagine.
- È stata aggiunta la supporto per il pseudoelemento «::details-content» per cambiare lo stile del contenuto definito attraverso l'elemento HTML .
- Nell'elemento HTML è stata aggiunta la supporto per il pseudoclasse «:open», che si attiva al momento dell'apertura del dialogo.
- Per l'elemento HTML <input type=button> è stata implementata la supporto per il pseudo-classe «:active», valido nell'intervallo di tempo compreso tra la pressione e il rilascio del pulsante.
- Aggiunto l'API Origin per ottenere informazioni sulla fonte di contenuto a livello di accoppiamento «protocollo + un dominio + porta.
- Implementata la proprietà MouseEvent.detail per ottenere informazioni sulla natura del clic (singolo, doppio).
- Nell'oggetto Request è stata aggiunta la proprietà «keepalive» per determinare se la connessione è in stato di keepalive.
- Aggiunta la supporto per il caricamento tramite espressioni import di moduli in formato JSON.
- Aggiunta la possibilità di specificare attributi per indicare il tipo di contenuto durante l'importazione tramite espressione import.
- Aggiunta la supporto per l'importazione ciclica dei moduli JavaScript.
- Abilitato di default il supporto per l'interfaccia navigator.sendBeacon, per la trasmissione asincrona di piccole porzioni di dati dal browser a un server.
- Aggiunta la configurazione https_proxy, insieme alle variabili d'ambiente HTTPS_PROXY e NO_PROXY per organizzare il lavoro tramite HTTPS proxy.
- Nell'API Crypto è stato aggiunto il supporto per gli algoritmi ML-KEM, ML-DSA e AES-OCB.
- Aggiunta la supporto per la cross-compilazione, utilizzando come host la piattaforma Windows.
- È stata aggiunta l'impostazione network_connection_timeout per impostare il timeout per l'instaurazione della connessione di rete (impostazione predefinita di 15 secondi).
Fonte: opennet.ru
