O Firefox 156 não chega com uma API de vitrine capaz de dominar a conversa, mas altera detalhes que costumam escapar de notas de atualização e reaparecer como teste quebrado, detecção de recurso errada ou diferença de segurança entre ambientes. É uma versão para olhar com atenção aos cantos.
Um falso positivo de CSS deixa de existir
Consultas @supports selector(::-webkit-scrollbar) agora retornam false. O Firefox não implementa esse pseudo-elemento proprietário, mas antes podia responder como se reconhecesse a sintaxe. Sites que usavam o teste para escolher uma estratégia de scrollbar finalmente recebem um sinal coerente.
@supports selector(::-webkit-scrollbar) {
/* Apenas motores que realmente oferecem esse seletor. */
}
@supports (scrollbar-color: auto) {
/* Caminho padronizado para o Firefox. */
}
A versão também corrige comportamentos de text-box-trim e o cálculo de offset em SVG. Se o projeto tem testes de screenshot para tipografia apertada, ícones ou gráficos, vale atualizar os baselines apenas depois de confirmar que o novo resultado segue o padrão.
Promise.try preserva a Promise nativa
Promise.try() passa a usar a operação equivalente a PromiseResolve quando o callback devolve uma Promise nativa. Na prática, o objeto pode ser preservado em vez de ser embrulhado desnecessariamente. Código normal raramente depende da identidade da Promise, mas testes e bibliotecas que instrumentam cadeias assíncronas podem perceber a mudança.
Declarações using também ficam mais estritas: o binding não pode ser reatribuído. É o comportamento esperado de um recurso cujo ciclo de vida é controlado pelo escopo, e pode revelar transpilações ou exemplos que tratavam a variável como mutável.
Scheduler, DOM e WebRTC
Scheduler.yield() agora herda prioridade e sinal de cancelamento mesmo quando é chamado depois de um await síncrono. Isso deixa tarefas cooperativas mais previsíveis. Já Range.deleteContents() e extractContents() receberam correções para operações que atravessam árvores DOM e limites de Shadow DOM.
No WebRTC, a opção alwaysNegotiateDataChannels muda como canais de dados entram na negociação. Integrações de comunicação em tempo real merecem testes de interoperabilidade, especialmente quando um lado da conexão atualiza antes do outro.
TLS e criptografia ficaram mais exigentes
O navegador deixa de oferecer por padrão os grupos FFDHE de 2048 e 3072 bits. Servidores modernos normalmente negociam curvas elípticas, mas appliances e endpoints antigos podem falhar. A Web Crypto API também endurece a validação de parâmetros em SubtleCrypto.deriveBits(), transformando entradas toleradas indevidamente em erros explícitos.
DevTools e recursos experimentais
O servidor de depuração remota passa a aceitar clientes até três versões mais antigos, útil para equipes que não atualizam todas as máquinas no mesmo dia. Scoped Custom Element Registries e Container Timing aparecem sob flags ou em canais experimentais; não devem entrar em produção apenas porque constam na página da versão.
A melhor preparação para o Firefox 156 é curta: execute testes visuais, rode a suíte sem polyfills que possam mascarar comportamento e verifique endpoints TLS menos acessados. Nenhuma mudança isolada parece enorme; juntas, elas atingem exatamente os lugares que costumam ficar fora do caminho feliz.
