È stato pubblicato il rilascio del motore di navigazione Servo 0.1.0 e del browser dimostrativo ServoShell, sviluppato insieme, scritto in Rust. Le build pronte sono state create per Linux, Android, macOS e Windows. Oltre alle build separate, Servo è ora fornito anche in forma di pacchetto crate, che consente di utilizzare il motore come libreria.
Servo 0.1.0 è stato il primo rilascio per cui si garantisce un lungo ciclo di supporto (LTS). Nuove versioni LTS saranno pubblicate ogni 6 mesi sulla base di un rilascio intermedio successivo. Il supporto per le versioni LTS durerà 9 mesi (3 mesi per passare alla nuova versione LTS). La versione LTS si differenzia dalle versioni normali per la pubblicazione di aggiornamenti con correzioni di vulnerabilità nella libreria servo, nel motore JavaScript e nelle dipendenze. Si prevede che la versione LTS sarà utile per gli sviluppatori che integrano Servo nei propri progetti e non desiderano passare mensilmente a un nuovo rilascio intermedio con possibili cambiamenti nell'API.
Il rilascio di Servo 0.1.0 LTS è basato sulla versione intermedia 0.0.6, formata qualche giorno fa, che ha implementato le seguenti nuove funzionalità:
- Nell'elemento HTML «button» sono stati implementati gli attributi «command» e «commandfor», che possono essere utilizzati nei pulsanti al posto degli attributi «popovertargetaction» e «popovertarget» per impostare in modo dichiarativo l'interazione con il menu richiamato al clic del pulsante.
- È stato aggiunto il selettore CSS «:modal», che consente di definire che il dialogo creato tramite l'elemento
- È stata implementata la regola CSS @property, che consente di registrare proprietà CSS personalizzate.
- Sono stati aggiunti le proprietà CSS «alignment-baseline» e «baseline-shift» per l'allineamento verticale del testo.
- È stato aggiunto il supporto per l'intestazione «Content-Security-Policy: base-uri», che limita gli URL che possono essere utilizzati nell'elemento HTML .
- È stato aggiunto il supporto parziale per il caricamento ritardato dei blocchi iframe, in cui il contenuto che si trova al di fuori dell'area visibile non viene caricato finché l'utente non scorre la pagina in un punto che precede direttamente l'elemento. L'attivazione del caricamento ritardato delle pagine avviene tramite l'attributo «loading=lazy» nel tag iframe ().
- Aggiunta la parziale supporto della proprietà CSS «transform-style: preserve-3d» per il posizionamento degli elementi figli nello spazio 3D.
- Implementati gli eventi pointermove, pointerdown, pointerup e pointercancel.
- Garantita la rotazione delle immagini in base ai metadati EXIF.
- Assicurato l'uso della variabile d'ambiente LANG per selezionare la lingua predefinita per l'intestazione «Accept-Language» e la proprietà navigator.language.
- Aggiunti API Pointer Events e UserActivation.
- Implementati i metodi import.meta.resolve(), formData(), toJSON(), createIndex(), deleteIndex() e index().
- Nel browser dimostrativo servoshell, sono state implementate le pagine servo:preferences (configuratore GUI) e servo:config (modifica di singoli parametri in stile about:config) per cambiare le impostazioni. Supportata la ricarica della pagina premendo F5.

- Negli strumenti per web-developer in modalità ispezione, è stato aggiunto il supporto per la modifica degli attributi DOM, nella console web è fornita un'anteprima degli oggetti trasmessi tramite console.log(), nel debugger è stata aggiunta la possibilità di mettere in pausa e riprendere l'esecuzione degli script.
- Espanso l'API per integrare il motore del browser nelle applicazioni.
Il motore Servo è stato inizialmente sviluppato da Mozilla, ma poi è passato sotto l'egida dell'organizzazione Linux Foundation. Servo si distingue per il supporto del rendering web multi-threaded, il parallelismo delle operazioni sul DOM (Document Object Model) e l'utilizzo dei meccanismi di programmazione sicura forniti dal linguaggio Rust. Servo è stato originariamente progettato per supportare la suddivisione della codice DOM e il rendering in compiti più piccoli, che possono essere eseguiti in parallelo e utilizzare più efficientemente le risorse delle CPU multi-core. Alcuni componenti di Servo, come il motore CSS multi-threaded e il sistema di rendering WebRender, sono già integrati in Firefox.
Fonte: opennet.ru

