A Mozilla disponibilizou oficialmente a versão estável do Firefox 155 em 1º de setembro de 2026. A nova atualização representa um marco importante para engenheiros de software e desenvolvedores de interface, introduzindo recursos aguardados nas especificações de CSS moderno, métodos estáticos de controle de promessas em JavaScript, aprimoramentos significativos nas DevTools e a implementação de protocolos de rede de nova geração.
Todas as alterações documentadas nas notas oficiais do MDN Web Docs refletem o compromisso contínuo com os padrões abertos da web, agregando mais poder ao código nativo do navegador e reduzindo a dependência de scripts auxiliares complexos no dia a dia da programação.
Ferramentas de desenvolvedor com painel de emulação e JSON Lines
O conjunto de ferramentas do Firefox DevTools recebeu melhorias diretas na usabilidade e inspeção de dados:
- Painel dedicado de emulação de mídia: Os botões de emulação na visualização de regras (Rules view) do inspetor de páginas foram agrupados em um painel exclusivo, acessado diretamente através do novo botão
@. Além de simplificar a interface, o painel adiciona suporte para emular o recurso de mídiaprefers-reduced-motion, facilitando a validação de acessibilidade e redução de movimento em animações. - Visualizador nativo de JSON Lines (NDJSON): O JSON Viewer integrado agora abre documentos no formato JSON Lines. O navegador reconhece automaticamente arquivos com extensão
.jsonlou servidos com os tipos MIMEapplication/jsonlines,application/x-ndjsonetext/jsonl. Cada linha é processada individualmente em blocos expansíveis identificados pelo número da linha original, e linhas corrompidas têm o erro reportado inline sem impedir a leitura do restante do arquivo. - Atalho de teclado no Debugger: Foi incorporado um novo atalho de teclado para desativar e reativar breakpoints de maneira instantânea durante sessões de depuração de código.
Evolução no CSS: função attr() universal, progress() e alpha()
O motor de renderização visual do Firefox 155 avança com novas funções matemáticas e de manipulação de estilo declarativo:
- Função attr() universal: Anteriormente limitada à propriedade
contentde pseudo-elementos, a funçãoattr()agora pode ser aplicada em qualquer propriedade CSS. É possível conduzir estilos diretamente a partir de atributos HTML (como emwidth: attr(data-size px)) dispensando código JavaScript. A implementação suporta unidades tipadas (comopxes), valores de fallback, namespaces e pode ser utilizada dentro de consultas de estilo de contêiner (container style queries). - Função matemática progress(): O suporte à função
progress()permite obter um valor numérico proporcional ao progresso entre um ponto inicial e um ponto final. O resultado numérico pode ser combinado diretamente em expressões de cálculo, comoopacity: calc(0.4 + progress(100cqw, 300px, 900px) * 0.6). - Função de transparência alpha(): Permite ajustar dinamicamente o canal alfa de uma cor mantendo seus outros componentes visuais inalterados. É possível referenciar o canal original através da palavra-chave relativa, como em
alpha(from var(--brand) / calc(alpha * 0.5)). - Renomeação da propriedade font-width: Em conformidade com as diretrizes atualizadas da especificação, o navegador passa a suportar oficialmente a propriedade
font-widthe o descritor@font-facecorrespondente. O antigo identificadorfont-stretchcontinua funcional como um alias de compatibilidade legado.
JavaScript e módulos: Promise com chaves e resiliência de cache
No ambiente de execução de scripts, duas novidades centrais aprimoram a robustez dos fluxos assíncronos e do carregamento modular:
- Métodos estáticos Promise.allKeyed() e Promise.allSettledKeyed(): Definidos na proposta TC39 await dictionary, esses métodos funcionam de modo análogo a
Promise.all()ePromise.allSettled(), mas recebem como argumento um objeto de promessas em vez de uma estrutura iterável. Os métodos cumprem o resultado em um objeto preservando exatamente as mesmas chaves, permitindo ler valores diretamente pelo nome em vez de depender de posições numéricas em arrays. - Recuperação de falhas em módulos: Módulos que falham ao carregar por problemas temporários de rede ou incompatibilidade inicial de tipo MIME não são mais gravados permanentemente no cache interno de erros. Quando o servidor se estabiliza, tentativas subsequentes de importação podem ser concluídas com sucesso (aplicando-se a módulos JavaScript, JSON, CSS e texto). Adicionalmente, a tag
<link rel="modulepreload">passa a emitir o eventoloadpara módulos já obtidos e continua executando scripts mesmo que uma checagem anterior de integridade de sub-recursos (SRI) tenha falhado.
Protocolos de rede: Happy Eyeballs v3 e QUIC v2
A camada de conectividade de rede do navegador foi aperfeiçoada para acelerar o estabelecimento de sessões e oferecer suporte a protocolos modernos:
- Happy Eyeballs versão 3: Durante o processo de conexão, o navegador executa consultas simultâneas concorrentes entre endereços IPv6 e IPv4, impedindo que tentativas em famílias de endereços inacessíveis atrasem a abertura de páginas em plataformas suportadas.
- Negociação de QUIC versão 2: Foi adicionada a negociação de versão do protocolo de transporte QUIC, viabilizando conexões sob HTTP/3 que negociem diretamente a especificação do QUIC v2.
Expansão de APIs: WebTransport, WebGPU e DOM
O ecossistema de APIs de alto desempenho e interface gráfica recebeu adições substanciais no Firefox 155:
- WebTransport API: Ganhou suporte a grupos de envio (send groups) via
WebTransport.createSendGroup()para balancear e priorizar streams de dados; o métodoexportKeyingMaterial()para derivar chaves criptográficas compartilhadas a partir da camada TLS (útil para detectar ataques de interceptação MITM); o métodocreateWritable()com propriedades de ordenação para envio de datagramas; e a propriedadedrainingpara gerenciar o encerramento gracioso de sessões solicitado pelo servidor. - WebGPU e dual-source blending: Em sistemas desktop, o método
requestDevice()passa a suportar o recursodual-source-blendingcom a extensão WGSL correspondente, habilitando fatores de mistura avançados na criação de pipelines de renderização gráfica. - Propriedades de URL em SVGAElement: A interface
SVGAElementimplementa o mixinHyperlinkElementUtils, expondo nos links SVG as propriedades canônicas de decomposição de URL (comoprotocol,hostname,pathname,searcheorigin) idênticas às âncoras HTML. - Setters indexados em listas SVG: As interfaces
SVGNumberList,SVGPointList,SVGStringListeSVGTransformListagora aceitam modificações diretas através da sintaxe de colchetes (exemplo:transformList[0] = novoTransform), sem exigir chamadas imperativas areplaceItem(). - Opções no método SVG getBBox(): O método passa a honrar argumentos de configuração (como
fill,stroke,markerseclipped) para calcular caixas delimitadoras que considerem o traçado e recortes reais dos vetores.
WebAssembly: imports compactos e aritmética larga
O motor WebAssembly implementa duas propostas que diminuem o tamanho de binários e elevam a performance computacional:
- Compact import section: Extensão binária que reduz consideravelmente o volume de metadados em módulos que realizam grande quantidade de importações de funções ou memórias externas.
- Instruções de Wide Arithmetic: Adição das instruções
i64.add128,i64.sub128,i64.mul_wide_sei64.mul_wide_u, que processam operandos de 64 bits produzindo resultados diretos de 128 bits sem necessidade de emulação em software, otimizando bibliotecas criptográficas e rotinas matemáticas de precisão arbitrária.
Recursos experimentais no about:config
O Firefox 155 distribui em seu binário recursos de ponta que podem ser habilitados experimentalmente através da página de preferências about:config:
- Scroll-driven animations: Habilitável através de
layout.css.scroll-driven-animations.enabled, permitindo animações vinculadas ao progresso da barra de rolagem usandoscroll-timelineeview-timeline. - CSS Typed Object Model: Ativado por
layout.css.typed-om.enabled, expondo valores de estilo como objetos estruturados do JavaScript em vez de strings brutas. - Consultas at-rule() em @supports: Chave
layout.css.supports.at-rule.enabledpara verificar compatibilidade nativa de regras condicionais do CSS. - Audio Session API: Chave
dom.audio_session.enabledpara coordenar como o som do site interage com mídias externas reproduzidas no dispositivo. - Line-clamp sem prefixo: Chave
layout.css.line-clamp.enabledpara truncamento nativo de texto em múltiplas linhas com suporte a strings personalizadas e palavra-chaveno-ellipsis. - Valor border-area em background-clip: Chave
layout.css.background-clip.border-area.enabledpara aplicar gradientes ou padrões diretamente na área da borda do elemento.