Servo 0.2









Lançamento publicado Servo 0.2.0 — nova versão de um mecanismo experimental de navegador, escrito em Rust. O lançamento ocorreu 31 de maio de 2026 e inclui alterações feitas em abril: no total, os desenvolvedores contaram 534 commits, que se tornou um novo recorde mensal do projeto. Servo se desenvolve como um projeto independente sob a égide da Linux Foundation Europe e é voltado para a criação de um motor web leve e embutido para aplicativos, plataformas móveis e interfaces de navegador experimentais.

Principais mudanças

  • A interface do servoshell para Android foi redesenhada.
    Na versão Android da shell de demonstração do Servo, a interface do navegador foi atualizada e uma nova tela de histórico foi adicionada. O APK ficou aproximadamente 30% menor, e um erro que causava uma tela preta ao fechar as configurações ou voltar de outro aplicativo foi corrigido. Agora é possível fechar abas no OpenHarmony.

  • Melhor suporte para texto em chinês, japonês e coreano.
    No motor de layout, foi corrigido o tratamento de quebra de linha para idiomas CJK, e na interface do servoshell no Windows, Linux e FreeBSD, as fontes CJK foram incluídas. Isso é importante para a exibição correta de sites em idiomas onde as regras de quebra e seleção de fontes diferem do alfabeto latino.

  • Adição de visualização interativa de JSON.
    Se um arquivo JSON for aberto como o documento principal, o Servo agora o exibe através de um pretty-printer interativo. Isso torna o motor mais conveniente não apenas para visualização de páginas comuns, mas também para desenvolvedores que precisam abrir respostas de API e dados estruturados diretamente no navegador.

  • Expansão do suporte à Web Platform.
    O Servo agora suporta <select multiple>, <template shadowrootslotassignment>, reprodução de <video> no OpenHarmony, suporte para minimum-scale e maximum-scale em <meta name=viewport>, a função CSS color-mix() com número arbitrário de cores, tab-size, text-align: match-parent, criação de Worker a partir de blob URL, contexto WebGL para OffscreenCanvas, além da propriedade detail em PerformanceMark e PerformanceMeasure.

  • Novas APIs DOM foram adicionadas.
    Eventos selectionchange foram implementados para <input> e <textarea>, StorageManager experimental, activeElement para Document e ShadowRoot, crypto.subtle.supports(), propriedades cellPadding, cellSpacing e align em HTMLTableElement, relatedTarget para eventos focus e blur, e transferFromImageBitmap() para ImageBitmapRenderingContext. Os desenvolvedores observam separadamente que o Servo se tornou o primeiro grande motor de navegador a suportar crypto.subtle.supports().

  • Navegação por teclado e funcionamento do foco foram melhorados.
    Agora o Tab pode atravessar as fronteiras do , e Ctrl+Backspace — ou Option+Backspace no macOS — remove uma palavra inteira em campos de entrada. Além disso, foram corrigidos erros de foco e IME na versão desktop do servoshell.

  • As ferramentas para desenvolvedores foram ampliadas.
    Em conjunto com o Firefox DevTools, as abas Inspector, Console e Debugger foram aprimoradas. O painel Rules agora exibe declarações de @layer, e Console e Debugger têm mais informações sobre funções, arrays, objetos e outros valores, incluindo a inspeção de variáveis locais e globais através de Scopes, depuração de scripts worker e suporte inicial ao Style Editor.

  • A segurança foi reforçada.
    CryptoKey agora limpa os buffers com material de chave após o uso. Foram resolvidos problemas de acesso ao DOM API entre documentos de origens diferentes, erros de isolamento do localStorage e sessionStorage em iframes sandboxed e iframe srcdoc, acessibilidade incorreta do IndexedDB em iframes sandboxed e workers a partir de URLs data:, possibilidade de deslocamento de cookies entre alguns IP-origins, leitura de memória fora do buffer em texImage3D() para WebGL2, assim como um comportamento indefinido no manipulador de sinais do servoshell.

  • O trabalho no IndexedDB e no armazenamento progrediu.
    O IndexedDB foi ativado em modo experimental no servoshell e transferido para um novo sistema de "client storage", que deve fornecer ao Servo um formato único de armazenamento no disco e um gerenciamento comum de quotas para funções web que armazenam dados. Consultas de chave de intervalo, gerenciamento de transações, chaves, valores e exceções também foram aprimorados.

  • A API para integração do Servo foi atualizada.
    Como esta é a segunda versão mensal da biblioteca Servo, os desenvolvedores esclareceram a política de compatibilidade: a versão 0.2.0 é considerada uma atualização quebrada em relação à 0.1.x. Foi adicionada a capacidade de carregar URLs com cabeçalhos HTTP personalizados através do WebView::load_request, obtenção assíncrona de cookies, limpeza apenas de cookies de sessão sem remover cookies permanentes, transmissão de destination e referrer_url ao interceptar solicitações, além de um modo de armazenamento temporário para isolar dados de sessão.

  • Foram corrigidos erros de exibição e comportamento das páginas.
    Os desenvolvedores mencionam correções para console.log, animações CSS, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, posicionamento absoluto dentro de grids, word-spacing, removeChild() no Document e URL.revokeObjectURL(). Além disso, a aparência do e o placeholder do