Beta do Chrome 142

Publicado em: 1º de outubro de 2025

A menos que indicado de outra forma, essas mudanças se aplicam à versão Beta do Chrome 142 para Android, ChromeOS, Linux, macOS e Windows. Saiba mais sobre esses recursos nos links fornecidos ou em ChromeStatus.com. Faça o download da versão Beta do Chrome 142 em Google.com para computador ou na Google Play Store para Android.

CSS e interface

Pseudoclasses :target-before e :target-after

Essas pseudoclasses correspondem a marcadores de rolagem que estão antes ou depois do marcador ativo (correspondendo a :target-current) no mesmo grupo de marcadores de rolagem, conforme determinado pela ordem de árvore plana:

  • :target-before: corresponde a todos os marcadores de rolagem que precedem o marcador ativo na ordem da árvore plana dentro do grupo.
  • :target-after: corresponde a todos os marcadores de rolagem que seguem o marcador ativo na ordem da árvore plana dentro do grupo.

Posicionamento absoluto para o elemento ::view-transition

As transições de visualização usam uma pseudosubárvore do elemento, com ::view-transition sendo a raiz dessa transição. Antes, o elemento ::view-transition era especificado para ter position: fixed. O Grupo de trabalho do CSS decidiu fazer esse position: absolute, e o Chrome agora reflete essa mudança.

Essa mudança não deve ser perceptível porque o bloco de contenção desse elemento permanece o bloco de contenção de snapshot no caso absoluto ou fixo. A única diferença perceptível está em getComputedStyle.

Propriedade activeViewTransition no documento

A API View Transitions permite que os desenvolvedores iniciem transições visuais entre diferentes estados. O ponto de entrada principal do SPA é startViewTransition(), que retorna um objeto de transição. Esse objeto contém várias promessas e funcionalidades para rastrear o progresso da transição e permite manipular transições, por exemplo, pulando ou modificando os tipos delas.

A partir do Chrome 142, os desenvolvedores não precisam mais armazenar esse objeto. Uma propriedade document.activeViewTransition representa esse objeto ou null se nenhuma transição estiver em andamento.

Isso também se aplica a transições de MPA, em que o objeto está disponível apenas por eventos pageswap e pagereveal. Nessa atualização, document.activeViewTransition é definido como esse objeto durante a transição.

Sintaxe de intervalo para consultas de contêiner de estilo e if()

O Chrome aprimora as consultas de estilo CSS e a função if() adicionando suporte à sintaxe de intervalo.

Ela estende as consultas de estilo além da correspondência exata de valores (por exemplo, style(--theme: dark)). Os desenvolvedores podem usar operadores de comparação (como > e <) para comparar propriedades personalizadas, valores literais (por exemplo, 10px ou 25%) e valores de funções de substituição, como attr() e env(). Para uma comparação válida, os dois lados precisam ser resolvidos para o mesmo tipo de dados. Ele é limitado aos seguintes tipos numéricos: <length>, <number>, <percentage>, <angle>, <time>, <frequency> e <resolution>.

Exemplos:

Comparar uma propriedade personalizada com um comprimento literal:

@container style(--inner-padding > 1em) {
  .card {
    border: 2px solid;
  }
}

Comparar dois valores literais

@container style(1em < 20px) {
  /* ... */
}

Usando intervalos de estilo em if():

.item-grid {
  background-color: if(style(attr(data-columns, type<number>) > 2): lightblue; else: white);
}

Invocadores de interesse (atributo interestfor)

O Chrome adiciona um atributo interestfor aos elementos <button> e <a>. Esse atributo adiciona comportamentos de "interesse" ao elemento. Quando um usuário "mostra interesse" no elemento, as ações são acionadas no elemento de destino, por exemplo, mostrando um popover. O user agent detecta quando um usuário "mostra interesse" no elemento usando métodos como manter o ponteiro sobre ele, pressionar teclas de atalho especiais no teclado ou tocar e manter pressionado o elemento em telas sensíveis ao toque. Quando o interesse é demonstrado ou perdido, um InterestEvent é acionado no destino, que tem ações padrão para popovers, como mostrar e ocultar o popover.

A propriedade font-language-override

O Chrome apresenta suporte à propriedade CSS font-language-override. A propriedade permite que os desenvolvedores substituam o idioma do sistema usado para a substituição de glifos OpenType especificando uma tag de idioma de quatro caracteres diretamente em CSS.

Ele permite um controle tipográfico refinado, o que é especialmente útil para conteúdo multilíngue ou fontes com variantes de glifos específicas de idiomas.

O atributo download no elemento <a> do SVG

O Chrome introduz a compatibilidade com o atributo download na interface SVGAElement, alinhando-se à especificação SVG 2. O atributo download permite que os autores especifiquem que ele baixa o destino de um hiperlink SVG em vez de navegar até ele. Isso reflete o comportamento já compatível com HTMLAnchorElement. Ele promove a interoperabilidade entre os principais navegadores, garante um comportamento consistente entre os elementos HTML e SVG <a> e melhora a experiência do desenvolvedor e as expectativas do usuário.

Paridade entre dispositivos móveis e computadores para modos de renderização de elementos selecionados

Ao usar os atributos size e multiple, o elemento <select> pode ser renderizado como uma caixa de listagem na página ou um botão com um pop-up. No entanto, esses modos não têm disponibilidade consistente no Chrome para dispositivos móveis e computadores. A renderização da caixa de listagem na página não está disponível em dispositivos móveis, e um botão com um pop-up não está disponível em computadores quando o atributo multiple está presente.

Essa atualização adiciona a caixa de listagem para dispositivos móveis e um pop-up de seleção múltipla para computadores. Além disso, garante que as ativações com os atributos size e multiple resultem no mesmo modo de renderização em dispositivos móveis e computadores. As mudanças são resumidas da seguinte forma:

  • Quando o atributo size tem um valor maior que 1, a renderização na página é sempre usada. Antes, os dispositivos móveis ignoravam isso.
  • Quando o atributo multiple é definido sem o atributo size, a renderização na página é usada. Antes, os dispositivos móveis usavam um pop-up em vez de uma caixa de listagem na página.
  • Quando o atributo multiple é definido com size=1, um pop-up é usado. Os dispositivos desktop usavam uma caixa de listagem na página.

Ativação de usuário fixo em navegações iniciadas pelo renderizador de mesma origem

O Chrome preserva o estado de ativação do usuário fixo depois que uma página navega para outra de mesma origem. A falta de ativação do usuário na página pós-navegação impede alguns casos de uso, por exemplo, mostrar teclados virtuais com foco automático. Isso bloqueou desenvolvedores que queriam criar MPAs em vez de SPAs.

Isso não inclui solicitações de navegação iniciadas pelo navegador (atualização, navegação no histórico, URL digitado na barra de endereço etc.).

APIs Web

WebGPU: recurso primitive_index

A WebGPU adiciona um novo recurso opcional que expõe um novo shader integrado da WGSL, primitive_index. Ele fornece um índice por primitiva para shaders de fragmentos em hardware compatível, semelhante aos recursos integrados vertex_index e instance_index. O índice primitivo é útil para técnicas gráficas avançadas, como geometria virtualizada.

WebGPU: formatos de textura tier1 e tier2

Estenda o suporte a formatos de textura de GPU com recursos como anexação de renderização, combinação, multiamostragem, resolução e storage_binding.

Propriedade DataTransfer para eventos de entrada insertFromPaste, insertFromDrop e insertReplacementText

Preencha a propriedade dataTransfer em eventos de entrada com valores inputType de insertFromPaste, insertFromDrop e insertReplacementText para fornecer acesso a dados de área de transferência e arrastar e soltar durante operações de edição em elementos contenteditable.

O objeto dataTransfer contém os mesmos dados que estavam disponíveis durante o evento beforeinput.

Esse recurso se aplica apenas a elementos "contenteditable". Para controles de formulário (textarea, input), o comportamento permanece inalterado.

Essa propriedade torna o Chrome interoperável com o Safari e o Firefox.

Sessão de mídia: adicionar motivo aos detalhes da ação enterpictureinpicture

Adiciona enterPictureInPictureReason ao MediaSessionActionDetails enviado à ação enterpictureinpicture na API Media Session. Isso permite que os desenvolvedores distingam entre ações de enterpictureinpicture acionadas explicitamente pelo usuário (por exemplo, de um botão no user agent) e ações de enterpictureinpicture acionadas automaticamente pelo user agent porque o conteúdo fica oculto.

Bias contextual da API Web Speech

Com essa atualização, os sites podem oferecer suporte à otimização contextual para reconhecimento de fala adicionando uma lista de frases de reconhecimento à API Web Speech.

Os desenvolvedores podem fornecer uma lista de frases e atualizá-las para aplicar uma polarização aos modelos de reconhecimento de fala em favor dessas frases. Isso ajuda a melhorar a precisão e a relevância do reconhecimento de fala personalizado e específico do domínio.

Validação mais rigorosa do token MIME *+json para módulos JSON

Rejeita respostas de script do módulo JSON cujo tipo ou subtipo do tipo MIME contém pontos de código de token não HTTP (por exemplo, espaços) quando correspondidos com *+json. Isso está alinhado com a especificação de MIME Sniffing e outros mecanismos. Ela faz parte da área de foco dos módulos Interop2025.

FedCM: suporte para mostrar origens de iframe de terceiros na interface

Antes do Chrome 142, a FedCM sempre mostrava o site de nível superior na interface.

Isso funciona bem quando o iframe é conceitualmente primário. Por exemplo, foo.com pode ter um iframe foostatic.com, que não é significativo para o usuário.

Mas se o iframe for de terceiros, é melhor mostrar a origem dele na interface para que os usuários entendam melhor com quem estão compartilhando as credenciais. Por exemplo, um editor de fotos pode ser incorporado a um web app de publicação de livros e permitir que os usuários acessem arquivos armazenados anteriormente com o editor de fotos. Esse recurso já está disponível.

Isolamento de processos com chave de origem

Muda a política de isolamento de processos de bloqueio de processos para um site (por exemplo, example.com) para bloqueio de processos para uma origem específica (por exemplo, foo.example.com).

Para aumentar ainda mais a segurança, o Chrome está migrando para um modelo de isolamento de processos mais granular chamado "Isolamento de origem". O Chrome usava o "isolamento de sites", que agrupava diferentes origens do mesmo site, por exemplo, a.example.com e b.example.com, em um único processo de renderização.

Com o isolamento de origem, cada origem individual (como https://foo.example.com) é isolada no próprio processo de renderização. Ela fortalece a arquitetura de segurança do Chrome ao alinhar os limites de processo com o modelo fundamental de segurança baseado em origem da Web, oferecendo maior proteção contra possíveis vulnerabilidades nos sites.

Eventos pointerrawupdate interoperáveis expostos apenas em contextos seguros

A especificação PointerEvents restringiu pointerrawupdate a contextos seguros em 2020, ocultando o disparo de eventos e os listeners de eventos globais de contextos não seguros. Com essa atualização, o Chrome corresponde à especificação atualizada e se torna interoperável com outros navegadores principais.

Testes de origem em andamento

No Chrome 142, você pode ativar os seguintes novos testes de origem.

Credenciais de sessões vinculadas ao dispositivo

Uma maneira de os sites vincularem uma sessão a um único dispositivo com segurança.

Ele permite que os servidores vinculem uma sessão a um dispositivo com segurança. O navegador renova a sessão periodicamente quando solicitado pelo servidor, com prova de posse de uma chave privada.

Pool de soquetes TCP por site de nível superior

Este experimento avalia o impacto da mudança do tamanho do pool de sockets TCP por perfil de 256 (o padrão) para 513, adicionando um limite por site de nível superior de 256 (para garantir que duas guias não possam esgotar o pool). A viabilidade de aumentar o limite por perfil para 512 foi estudada e não gerou resultados negativos. O limite de 256 por site de nível superior é igual ao limite padrão por perfil, portanto, não deve afetar negativamente o desempenho. Esses limites são impostos de forma independente para o pool de WebSockets e o pool de sockets normal (HTTP).

A intenção é lançar esse experimento diretamente se não ocorrerem efeitos negativos.