Servo 0.2









Pubblicato il rilascio Servo 0.2.0 — nuova versione del motore browser sperimentale, scritto in Rust. Il rilascio è avvenuto 31 maggio 2026 e include le modifiche apportate ad aprile: gli sviluppatori hanno conteggiato 534 commit, che rappresenta un nuovo record mensile per il progetto. Servo si sviluppa come progetto indipendente sotto l'egida della Linux Foundation Europe ed è orientato alla creazione di un motore web leggero e integrabile per applicazioni, piattaforme mobili e interfacce browser sperimentali.

Modifiche principali

  • È stata rielaborata l'interfaccia di servoshell per Android.
    Nella versione Android dell'interfaccia dimostrativa di Servo è stato aggiornato l'interfaccia del browser ed è stata aggiunta una nuova schermata di cronologia. L'APK è diventato circa il 30% più leggero e sono stati risolti problemi di schermo nero durante la chiusura delle impostazioni o il ritorno da un'altra applicazione. Ora è possibile chiudere le schede su OpenHarmony.

  • Migliorato il supporto per i testi in cinese, giapponese e coreano.
    Nel motore di layout è stata corretta la gestione dei ritorni a capo per le lingue CJK, mentre nell'interfaccia di servoshell su Windows, Linux e FreeBSD sono stati inclusi i font CJK. Questo è importante per una corretta visualizzazione dei siti nelle lingue in cui le regole di interruzione e selezione dei font differiscono dall'alfabeto latino.

  • Aggiunta una visualizzazione interattiva del JSON.
    Se si apre un file JSON come documento principale, Servo ora lo visualizza tramite un pretty-printer interattivo. Questo rende il motore più comodo non solo per la visualizzazione delle pagine, ma anche per gli sviluppatori che devono aprire le risposte delle API e i dati strutturati direttamente nel browser.

  • Ampliate le funzionalità della Web Platform.
    In Servo sono stati introdotti <select multiple>, <template shadowrootslotassignment>, riproduzione di <video> su OpenHarmony, supporto per la scala minima e massima in <meta name=viewport>, la funzione CSS color-mix() con un numero arbitrario di colori, tab-size, text-align: match-parent, creazione di Worker da blob URL, contesto WebGL per OffscreenCanvas, oltre alla proprietà detail in PerformanceMark e PerformanceMeasure.

  • Nuove API DOM aggiunte.
    Implementati eventi selectionchange per <input> e <textarea>, StorageManager sperimentale, activeElement per Document e ShadowRoot, crypto.subtle.supports(), proprietà cellPadding, cellSpacing e align in HTMLTableElement, relatedTarget per gli eventi focus e blur, e transferFromImageBitmap() per ImageBitmapRenderingContext. Gli sviluppatori sottolineano che Servo è diventato il primo grande motore browser con supporto per crypto.subtle.supports().

  • Migliorata la navigazione con la tastiera e la gestione del focus.
    Ora Tab è in grado di attraversare i confini , mentre Ctrl+Backspace—o Option+Backspace su macOS—elimina l'intera parola nei campi di input. Inoltre, sono stati corretti errori di focus e IME nella versione desktop di servoshell.

  • Gli strumenti per sviluppatori sono stati ampliati.
    Insieme a Firefox DevTools, sono state migliorate le schede Inspector, Console e Debugger. Il pannello Rules ora mostra le dichiarazioni da @layer, la Console e Debugger contengono più informazioni su funzioni, array, oggetti e altri valori, è stata introdotta l'ispezione delle variabili locali e globali tramite Scopes, il debug degli script worker e il supporto iniziale per l'Editor di Stile.

  • La sicurezza è stata potenziata.
    CryptoKey ora sovrascrive i buffer con il materiale della chiave dopo l'uso. Sono stati risolti problemi di accesso all'API DOM tra documenti con origini diverse, errori di isolamento di localStorage e sessionStorage in iframe sandboxed e iframe srcdoc, accessibilità non corretta di IndexedDB in iframe sandboxed e worker da URL data:, possibilità di sovrascrittura dei cookie tra alcune origini IP, lettura della memoria oltre il buffer in texImage3D() per WebGL2 e comportamento indefinito nel gestore dei segnali servoshell.

  • I progressi nel lavoro su IndexedDB e sullo storage sono stati compiuti.
    IndexedDB è stato attivato in modalità sperimentale in servoshell ed è stato migrato a un nuovo sistema di "client storage", che dovrebbe fornire a Servo un formato di archiviazione uniforme su disco e una gestione centralizzata delle quote per le funzioni web che salvano dati. Sono stati anche migliorati le query su intervalli di chiavi, la gestione delle transazioni, chiavi, valori ed eccezioni.

  • L'API per l'integrazione di Servo è stata aggiornata.
    Poiché questo è il secondo rilascio mensile della libreria Servo, gli sviluppatori hanno chiarito la politica di compatibilità: la versione 0.2.0 è considerata un aggiornamento di rottura rispetto a 0.1.x. È stata aggiunta la possibilità di caricare URL con intestazioni HTTP personalizzate tramite WebView::load_request, acquisizione asincrona di cookie, pulizia solo dei cookie di sessione senza rimuovere i cookie permanenti, invio di destination e referrer_url durante l'intercettazione delle richieste e una modalità di storage temporaneo per isolare i dati della sessione.

  • Sono stati corretti errori di visualizzazione e comportamento delle pagine.
    Gli sviluppatori menzionano le correzioni per console.log, animazioni CSS, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, posizionamento assoluto all'interno di grid, word-spacing, removeChild() su Document e URL.revokeObjectURL(). Inoltre, l'aspetto di e del placeholder in