Pular para o conteúdo
Ladybird junho 2026: Downloads, histórico e segurança reforçada

Ladybird junho 2026: Downloads, histórico e segurança reforçada

Ladybird adiciona downloads, inspeção de cookies, controle de velocidade de vídeo, sandbox de segurança e mais no relatório de junho de 2026.

O Ladybird é financiado inteiramente pelo apoio generoso de empresas e indivíduos que acreditam na web aberta. Este mês, o projeto recebeu os seguintes patrocínios:

  • Paul Copplestone – $10 000 (patrocínio renovado)
  • SerpApi – $5 000 (patrocínio renovado)
  • Zeroramp – $5 000
  • Kinde – $5 000
  • Sjors Witteveen – $1 000 (patrocínio renovado)
  • publicqi – $1 000
  • All Things Secured – $1 000

O projeto agradece profundamente a todos os patrocinadores. Quem quiser apoiar o desenvolvimento pode entrar em contato.

Downloads

O Ladybird agora suporta downloads de arquivos. Uma barra de ferramentas exibe um popover com os downloads ativos e o progresso, existe uma página about:downloads, cancelamento de downloads e um pedido de confirmação ao tentar sair com operações em andamento (problema #10335).

Os downloads são gerenciados no processo de interface do usuário, permitindo que uma transferência continue mesmo se a aba que a iniciou for fechada.

Histórico de navegação

Uma nova página about:history lista o histórico local de navegação, com pesquisa e capacidade de excluir entradas (problema #10038). Internamente, o histórico de navegação agora reside no processo de interface do usuário (problema #10085).

Clicar com o botão direito ou pressionar longamente os botões de voltar e avançar exibe um menu nativo de histórico, mostrando títulos salvos e favicons (problema #10128). Também existe um atalho de teclado para limpar dados de navegação, com links diretos para os respectivos diálogos de configuração (problema #10262).

DevTools: armazenamento, estilos e scripts

Os DevTools ganharam uma aba Armazenamento. É possível inspecionar e modificar cookies (problema #10035), navegar e editar localStorage e sessionStorage (problema #10055) e inspecionar bancos de dados IndexedDB (problema #10143).

A inspeção de regras CSS também foi implementada, exibindo as declarações individuais por trás de um valor computado, com regras sobrescritas tachadas, inválidas destacadas e links funcionais “ir para fonte”, incluindo para estilos do agente do usuário (problema #9869).

Existe também uma nova visualização de fontes de script com pretty‑printing, dobramento, pesquisa e “ir para definição” (problema #10195).

Mídia: velocidade de reprodução e autoplay com silêncio

A velocidade de reprodução de mídia pode ser alterada (problema #9925). O áudio é alongado no tempo usando o algoritmo WSOLA do Chromium, mantendo o pitch e a inteligibilidade da fala ao acelerar ou desacelerar um clipe.

Mídia silenciada agora pode autoplay por padrão (problema #10014). A antiga configuração de autoplay era tudo‑ou‑nada e bloqueava todo o conteúdo, incluindo vídeos de fundo silenciosos, o que deixava muitos sites com aparência quebrada. Agora existe uma política de três estados que permite que mídia inaudível seja reproduzida automaticamente, mantendo a reprodução audível bloqueada até interação do usuário, impedindo que unmute ou play() executem áudio sem permissão.

Segurança e endurecimento

Junho foi dedicado a tornar o Ladybird mais difícil de atacar.

  • Serviços em sandbox: Processos auxiliares agora rodam dentro de verdadeiros sandboxes no Linux e macOS, usando seccomp/Landlock no Linux e perfis Seatbelt no macOS (problemas #10001, #10042). O sandboxing está ativado por padrão (problema #10132).

  • Particionamento de heap: Dados de strings, stores de ArrayBuffer e armazenamento de propriedades de objetos JS agora residem em partições dedicadas de heap, mantendo dados não relacionados longe de estado sensível a segurança (problemas #10041, #10025, #10033).

  • Correções de fuzzing: Um conjunto de travamentos encontrados por fuzzers e problemas de comportamento indefinido foram corrigidos em DOM, layout, decodificação de imagens e matemática de pixels CSS (problemas #9959, #10100, #10110, #10217, #10249).

  • Decodificação segura e sem memória: Decodificação e codificação de texto foi movida para o encoding_rs do Firefox (Rust), e decodificação GIF foi movida para o Wuffs (problemas #10204, #10031).

  • Isolamento de canvas: Dados de imagem de origem cruzada são agora rastreados para tingimento de canvas, e toDataURL()/toBlob() são rejeitados em canvases tingidos (problemas #10094, #10013).

GPU agora no compositor em sandbox

No mês passado, o compositor (a parte do navegador que monta e pinta os pixels finais na tela) foi movido para seu próprio processo. Este mês, renderização de canvas 2D e WebGL cruzou a mesma fronteira.

Listas de comandos de canvas 2D são agora reprodutíveis e rasterizadas no compositor (problemas #10086, #10133), contextos aninhados rasterizam durante reprodução (problema #10194), e comandos WebGL são transmitidos sobre memória compartilhada (problema #10269).

O resultado é tanto segurança quanto arquitetura: processos WebContent não precisam mais de acesso direto à GPU (problemas #10154, #10156). Zoom com pinça também é tratado de forma assíncrona no compositor, mantendo a responsividade mesmo quando a thread principal está ocupada (problema #10120).

Um único interpretador JavaScript

O LibJS agora roda seu interpretador de assembly otimizado em todas as plataformas, após ter sido habilitado no Windows (problema #10093). Isso permitiu a remoção do antigo interpretador genérico de bytecode e a consolidação em um único interpretador (problema #10099), deixando um único caminho de código para otimizar e manter.

Strings JavaScript também foram movidas para UTF‑16 em todo o lugar, coincidindo com a definição da linguagem e removendo muita conversão desnecessária (problema #10231).

WebAssembly GC

O LibWasm ganhou suporte para WebAssembly GC, junto com algumas propostas de tratamento de exceções (problema #10130). Wasm GC adiciona tipos de referência de struct e array com garbage collection, que um número crescente de ferramentas (para linguagens como Kotlin, Dart e Java) visam ao compilar para WebAssembly.

O JIT baseado em Cranelift do mês passado também recebeu uma rodada de correções, incluindo correções de correção de erros e fazendo-o funcionar sob nosso conjunto de testes (problemas #9813, #9878, #9906).

Recursos CSS

  • Unidades relativas a container: cqw, cqh, cqi, cqb, cqmin e cqmax são agora suportadas, construindo sobre consultas de container do mês passado (problema #9721).

  • contrast-color(): A função contrast-color() está implementada, escolhendo preto ou branco para legibilidade contra um dado fundo (problema #9920).

  • Propriedades personalizadas registradas: @property‑registered custom properties agora são computadas de acordo com sua sintaxe declarada (problema #10254).

  • progress(): A função matemática progress() está implementada (problema #10181).

  • anchor() em calc(): anchor() pode agora ser usado dentro de expressões calc() (problema #10108).

Interface do navegador

  • Pré-visualizações de aba ao pairar: Pairar sobre uma aba em segundo plano agora mostra uma pré-visualização em miniatura, construída a partir do bitmap em cache de WebContent, sem acionar um repaint (problema #10049).

  • IME no macOS: Suporte a editor de método de entrada agora funciona em conteúdo web no macOS, então entrada composta CJK e outras se comporta como esperado (problema #9756).

  • Autocomplete e comportamento de janela: Um conjunto de correções em torno do editor de localização e tratamento de janelas no macOS, incluindo melhor descarte de autocomplete e redimensionamento de janelas sem bordas (problema #10220).

  • Abas verticais: A tira de abas verticais agora pode ser posicionada à direita (problema #10198), e mostra ícones de áudio e fechar em abas recolhidas (problema #9829).

Sites que funcionam melhor

  • tweakers.net: Implementação de contrast-color() corrigiu texto ilegível em banner laranja (problema #9920).

  • rubyllm.com: O logo do site usa uma imagem de conteúdo CSS que só aparece em modo escuro, agora renderiza corretamente (problema #10273).

  • rightmove.co.uk: Permitir transformações em pseudo-elementos limpa artefatos de caixa na navbar, que são supostamente transformados em formas de seta (problema #10116).

  • Correção de layout de tabela em crossword online limpou sobreposição indesejada de células (problema #10306).

Outros ajustes:

  • WhatsApp Web não mostra mais o diálogo “navegador não suportado” e reacha a tela de login QR (problema #10297).

  • Transfermarkt não trava mais em navegação (problema #10291).

  • npmx.dev: Dois ajustes de layout de grade (problema #10190).

  • chatgpt.com: Redução de trabalho redundante de invalidação de estilo (problema #10067).

  • GitHub: Mais rápida pairagem sobre links em longas listas de pull requests (problema #9979).

Testes da plataforma web

A pontuação WPT subiu de 2 075 546 para 2 078 912 este mês, um ganho de 3 366 subtestes.

Outras alterações notáveis

  • Web Locks API: Suporte inicial para a API Web Locks API landed (problema #10261).

  • Fontes de emoji conscientes de apresentação: Fallback de fonte de emoji agora respeita font‑variant‑emoji, e text‑shadows de emoji pintam na cor da sombra (problemas #10192, #10168).

Nota sobre o processo de desenvolvimento

Em junho, também mudamos como o código entra no Ladybird: agora é apenas para maintainers, e não estamos mais aceitando contribuições públicas de código. O Ladybird permanece de código aberto, e envolvimento externo ainda importa através de relatórios de bugs, reduções, testes de site, discussão de padrões e relatórios de segurança. O raciocínio completo está documentado em Changing How We Develop Ladybird.

Leia o relatório completo em ladybird.org/newsletter/2026-06-30.

Via ladybird.org. Você pode conferir o post original em inglês:

This Month in Ladybird — June 2026

Por · Última atualização: