È stata pubblicata la versione 0.1.0 del motore browser Servo e del browser dimostrativo ServoShell, sviluppati in linguaggio Rust. Le build pronte sono disponibili per Linux, Android, macOS e Windows. Oltre a build singole, Servo è ora fornito anche come pacchetto crate, permettendo di utilizzare il motore come libreria.
Servo 0.1.0 è stata la prima versione a garantire un ciclo di supporto prolungato (LTS). Le nuove ramificazioni LTS verranno pubblicate ogni 6 mesi basandosi su una nuova versione intermedia. Il supporto per le versioni LTS durerà 9 mesi (con 3 mesi concessi per il passaggio alla nuova ramificazione LTS). A differenza delle versioni normali, la ramificazione LTS si distingue per la pubblicazione di aggiornamenti con correzioni di vulnerabilità nella libreria servo, nel motore JavaScript e nelle dipendenze. Si prevede che la ramificazione LTS sarà utile per gli sviluppatori che integrano Servo nei propri progetti e non vogliono passare mensilmente a una nuova versione intermedia con possibili cambiamenti nell'API.
La versione Servo 0.1.0 LTS è basata sulla versione intermedia 0.0.6, pubblicata pochi giorni fa, che ha introdotto 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 configurare in modo dichiarativo l'interazione con il menu richiamato al clic del pulsante.
- È stato aggiunto il selettore CSS «:modal», che consente di identificare se un dialogo creato tramite l'elemento
- È stata implementata la regola CSS @property, che consente di registrare proprietà CSS personalizzate.
- Sono state aggiunte 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 utilizzabili nell'elemento HTML .
- È stato introdotto il supporto parziale per il caricamento ritardato dei blocchi iframe, in cui il contenuto situato al di fuori dell'area visibile non viene caricato fino a quando l'utente non scorre la pagina nel punto immediatamente precedente all'elemento. L'attivazione del caricamento ritardato delle pagine avviene attraverso l'attributo «loading=lazy» nel tag iframe ().
- Aggiunta la compatibilità parziale con la proprietà CSS «transform-style: preserve-3d» per il posizionamento degli elementi figlio nello spazio 3D.
- Implementati gli eventi pointermove, pointerdown, pointerup e pointercancel.
- Realizzata la rotazione delle immagini basata sui metadati EXIF.
- Consentito l'uso della variabile ambientale LANG per scegliere la lingua predefinita per l'intestazione «Accept-Language» e la proprietà navigator.language.
- Aggiunti gli API Pointer Events e UserActivation.
- Implementati i metodi import.meta.resolve(), formData(), toJSON(), createIndex(), deleteIndex() e index().
- Nel browser dimostrativo servoshell, per modificare le impostazioni, sono state implementate le pagine servo:preferences (configuratore GUI) e servo:config (modifica di parametri specifici nello stile about:config). Aggiunta la possibilità di ricaricare la pagina premendo F5.

- Nell'insieme di strumenti per sviluppatori web, nella modalità di ispezione è stata aggiunta la funzione di modifica degli attributi DOM; nella web console è prevista l'anteprima degli oggetti trasmessi tramite console.log(), mentre nel debugger è stata aggiunta la possibilità di sospendere e riprendere l'esecuzione degli script.
- Espanso l'API per l'integrazione del motore del browser nelle applicazioni.
Il motore Servo è stato inizialmente sviluppato da Mozilla, ma successivamente è passato sotto l'egida della Linux Foundation. Servo si distingue per il supporto del rendering web multi-threaded, la parallelizzazione delle operazioni sul DOM (Document Object Model) e l'uso delle meccaniche di programmazione sicura fornite dal linguaggio Rust. Servo è stato creato per supportare la suddivisione del codice DOM e il rendering in compiti più piccoli, che possono essere eseguiti in parallelo e utilizzare in modo più efficace le risorse delle CPU multi-core. Alcune parti di Servo, come il motore CSS multi-threaded e il sistema di rendering WebRender, sono già integrate in Firefox.
Fonte: opennet.ru

