- A atualização de agosto de 2024 do Servo cobre amplamente desde recursos do motor web até o navegador servoshell, qualidade no Windows, ferramentas de desenvolvimento e estabilidade de CI
- As builds Nightly passaram a incluir
HTMLDialogElement.show(), renderização de entrada em<textarea>,border-image,structuredClone(),crypto.randomUUID(), reprodução de WAV,IIRFilterNodedo Web Audio e navegação com cross-origin redirect - Os componentes principais foram atualizados para SpiderMonkey 128, WebRender 0.65, wgpu 22.0 e Rust 1.80.1, e WebXR e flexbox passaram a vir ativados por padrão
- O servoshell ganhou navegação por abas e uma nova barra de ferramentas e página de nova aba, enquanto no Windows foram melhorados problemas relacionados a navegação por teclado, saída PNG, fontes e GPU
- Com um novo runner de CI, o tempo de build exclusivo para Windows foi reduzido em 70%, e também foram corrigidos vários crashes que aconteciam em sites reais e erros
BorrowErrorligados ao GC do SpiderMonkey
Adição de recursos da plataforma web
- Várias Web APIs e funcionalidades de CSS foram entrando gradualmente nas builds nightly do Servo
- 2024-07-27: suporte básico a
show()deHTMLDialogElement - 2024-07-29: propriedade
typedeHTMLFieldSetElement - 2024-07-31: renderização do texto digitado em
<textarea> - 2024-07-31: propriedade CSS
border-image - 2024-08-02: fontes CSP
unsafe-eval,wasm-unsafe-eval - 2024-08-04: reprodução de arquivos de áudio WAV
- 2024-08-09: API
structuredClone() - 2024-08-12:
IIRFilterNodedo Web Audio - 2024-08-13: navegação com cross-origin redirect
- 2024-08-23: API
crypto.randomUUID() - 2024-08-29: propriedade CSS
clip-path- exceto os valores
path(),polygon(),shape()eurl()
- exceto os valores
- 2024-07-27: suporte básico a
Mudanças nos componentes do motor e no comportamento padrão
- O Servo atualizou seus principais componentes de dependência para versões mais recentes
-
SpiderMonkey 128
-
WebRender 0.65
-
wgpu 22.0
- Rust 1.80.1
- WebXR e flexbox passaram a vir ativados por padrão
- Web APIs que retornam Promise agora fazem reject corretamente em caso de falha, em vez de lançar exceções
-
Melhorias em WebXR e flexbox
- A API WebXR foi retrabalhada em várias interfaces e recursos de entrada para acompanhar a ativação por padrão
- Foi adicionado suporte a Gamepad
- Houve atualizações relacionadas a hand input,
XRBoundedReferenceSpace,XRFrame,XRInputSource,XRPose,XRSession,XRTargetRayMode,XRView,XRWebGLLayer makeXRCompatible()agora pode ser chamado não só emWebGLRenderingContext, mas também emWebGL2RenderingContext
- O flexbox recebeu reforços em recursos de layout muito usados
- propriedade
gap align-content: stretch- valores
starteenddealign-itemsealign-self - suporte básico a
flex-direction: columnecolumn-reverse
- propriedade
- O cálculo de posicionamento e tamanho dos flex items também ficou mais preciso
position: relativepassou a ser suportado em flex itemsz-indexde flex items sempre cria um stacking context- intrinsic size correto passou a ser aplicado a flex items e flex containers
- O trabalho de suporte a texto bidirecional está em andamento
- inclui mudanças na arquitetura da fragment tree e trabalho na interface
writing-mode - as propriedades
unicode-bidiedirtêm suporte parcial - o valor
dir=autoainda não é suportado
- inclui mudanças na arquitetura da fragment tree e trabalho na interface
Navegador servoshell e qualidade no Windows
- O Servo-the-browser recebeu nova barra de ferramentas e navegação por abas
- A nova página de aba usa uma nova API que permite ao embedder do Servo registrar um custom protocol handler
- A qualidade de execução no Windows também melhorou em várias áreas
- a navegação por teclado foi corrigida
- o comportamento de saída PNG de
--outputfoi corrigido - bugs relacionados a fontes e GPU foram corrigidos
- As correções ligadas ao Windows estão associadas a problemas em que glifos ficavam desalinhados e cores saíam erradas em servo.org e duckduckgo.com, e imagens apareciam quebradas em wikipedia.org
Ferramentas de desenvolvimento e fluxo de trabalho para desenvolvedores
- O suporte a devtools ganhou mais recursos após o trabalho do último mês do projeto de estágio
- o Servo agora oferece suporte a HTML tree
- oferece suporte aos painéis Styles e Computed
- No macOS, o processo de executar o servoshell logo após a build ficou alguns segundos mais rápido
- No CI, o clippy agora roda em um job dedicado de linting, separado do tidy check existente
- Graças a doações, foi adicionado um novo runner de CI para builds no Windows, e o tempo de build apenas no Windows caiu 70%
- Um novo runner para builds Linux também deve ser adicionado em breve, e os builds de teste WPT deverão ficar mais rápidos
- Está em andamento uma triage meeting para investigar issues do GitHub, e a próxima Servo issue triage meeting acontecerá em 2 de setembro às 10:00 UTC
- mais detalhes em project#99
Melhorias de estabilidade do motor
- Em agosto, muitos bugs de crash que aconteciam em sites reais foram corrigidos
- Casos importantes de correção abrangem renderização, reflow e comportamento do parser HTML
- crash que ocorria durante a renderização de float perto de tabelas na HTML spec
- crash causado por reflow explícito desnecessário em w3schools.com
- tornar o parser HTML reentrante corrigiu crashes em vários sites, como kilonova.ro e tweakers.net
- Além disso, houve redução de crashes em caminhos de plataforma, API e parsing
- crash ao redimensionar a janela durante uso de WebGL no macOS
- crash ao renderizar texto com grapheme clusters muito longos
- crash ao renderizar o caractere tab em certas fontes
- crash do parser após chamada de
window.stop() - crash ao passar alguns valores para
console.log() - crash ao fazer parsing de certos valores de
<img srcset> - crash ao fazer parsing de certos valores de cabeçalhos HTTP
- crash ao definir
window.openerem determinadas situações - crash ao remover um iframe do documento
- crash ao chamar
new AudioContext()com opções não suportadas - crash intermitente em
WRSceneBuilderdurante o encerramento do Servo
- Foram corrigidos vários crashes de BorrowError que aconteciam no GC do SpiderMonkey
- Está em andamento um trabalho para impedir esse tipo de bug com análise estática
- O objeto DOM Window não vaza mais durante a navegação
- No Unix, o servoshell agora encerra de forma anormal em caso de panic, permitindo que testes web registrem corretamente o resultado como “CRASH”
Situação das doações
- O Servo recebe atualmente US$ 3.077 por mês em doações recorrentes, um aumento de 4,1% em relação a julho
- Isso inclui 12 doações via LFX, mas o Servo em breve deixará de aceitar doações pelo LFX
- As doações recorrentes devem ser migradas para GitHub Sponsors ou Open Collective
- O Servo também está cadastrado no thanks.dev, e 3 organizações no GitHub que dependem do Servo já estão patrocinando
- Se você usa bibliotecas do Servo como
url,html5ever,selectorsecssparser, pode contribuir com a comunidade via thanks.dev - O uso dos recursos é decidido de forma transparente pelo Technical Steering Committee, e mais detalhes estão na Sponsorship page
1 comentários
Comentários no Hacker News
Fico surpreso com o volume de patrocínio ser tão pequeno. Fico me perguntando se estão contabilizando apenas doações de pessoas físicas terceiras, fora grandes organizações.
Vendo tanta gente dizendo em voz alta que os navegadores web foram dominados pelo Google por meio do chrom(ium)e, imaginei que mais pessoas ou empresas teriam interesse em fazer um concorrente surgir mais rápido.
Também havia a percepção de que criar um navegador completamente novo, com uma engine nova do zero, não era realista, então talvez tenha existido um clima de "por que eu patrocinaria isso?". Felizmente, talvez o Ladybird tenha mudado isso.
Além disso, algumas organizações que têm esse dinheiro já desistiram. A Microsoft, que mudou o Edge para Chromium alguns anos atrás, é um exemplo. E muita gente provavelmente preferiria doar para o Firefox, a alternativa estabelecida ao Chromium, embora na prática também seja bem difícil doar especificamente para o desenvolvimento do Firefox.
A maioria das pessoas aqui parece apenas reclamar do estado terrível da web e, na prática, não fazer nada.
Vamos mostrar números fortes, pessoal.
A comunidade do HN conseguiria facilmente passar de 100 mil dólares em um dia. Agora que apareceu um navegador novo que dá para realmente esperar algo, vamos fazer isso acontecer.
É interessante ver que o Servo continua vivo. Estou torcendo.
Mesmo assim, acho bom haver um esforço sério para desenvolver navegadores e engines alternativos. O navegador Ladybird está muito mais longe de virar um produto maduro, mas é um projeto cuja simples existência já é bem-vinda.
Peguei as mudanças mais recentes e, ao olhar a nova aba, fiquei surpreso ao ver que agora há suporte a RTL. Algumas semanas atrás não havia suporte.
O PR mesclado está aqui: https://github.com/servo/servo/pull/33148
O Servo não tinha sido abandonado?