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 doO desempenho foi aumentada e o consumo de memória foi reduzido.
Foram corrigidas grandes ineficiências: o carregamento da especificação ECMAScript foi acelerado devido à reformulação do processamento dos atributos id e name, a primeira sessão TLS tornou-se mais rápida em 30 a 60 ms, o tráfego IPC entre threads foi reduzido, o consumo de memória dos nós DOM Attr, Text e CharacterData foi diminuído em 16 bytes por nó, e um vazamento de memória ao remover <video controls> e <audio controls> foi corrigido. A página about:memory agora calcula mais precisamente as alocações de memória, incluindo alocações libc no Linux.
Assim, o Servo 0.2 é mais um passo para transformar o projeto em um mecanismo web embutível: a interface móvel está melhorando, a compatibilidade com padrões web modernos está crescendo, erros de segurança estão sendo corrigidos e a API para desenvolvedores de aplicativos está se estabilizando gradualmente.
Fonte: linux.org.ru




