Publicado em 1º de outubro de 2025
Salvo indicação em contrário, 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 computadores ou na Google Play Store para Android.
CSS e interface
Pseudoclasses :target-before e :target-after
Essas pseudoclasses correspondem aos marcadores de rolagem que estão antes ou depois do marcador ativo (correspondente a :target-current) no mesmo grupo de marcadores de rolagem, conforme determinado pela ordem da árvore simples:
:target-before: corresponde a todos os marcadores de rolagem que precedem o marcador ativo na ordem da árvore simples dentro do grupo.:target-after: corresponde a todos os marcadores de rolagem que seguem o marcador ativo na ordem da árvore simples dentro do grupo.
Posicionamento absoluto para o elemento ::view-transition
As transições de visualização usam uma pseudo-subá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 de CSS resolveu tornar essa 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 acompanhar o progresso da transição e permite manipular transições, por exemplo, ignorando a transição ou modificando os tipos dela.
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 só está disponível 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.
Ele estende as consultas de estilo além da correspondência de valor exato (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) {
/* ... */
}
Usar intervalos de estilo em if():
.item-grid {
background-color: if(style(attr(data-columns, type<number>) > 2): lightblue; else: white);
}
Invocadores de interesse (o atributo interestfor)
O Chrome adiciona um interestfor atributo 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 pop-up. O user agent detecta quando um usuário "mostra interesse" no elemento por métodos como manter o ponteiro sobre o elemento, pressionar teclas de atalho especiais no teclado ou pressionar o elemento por muito tempo em telas sensíveis ao toque. Quando o interesse é mostrado ou perdido, um InterestEvent é acionado no destino, que tem ações padrão para pop-ups, como mostrar e ocultar o pop-up.
A propriedade font-language-override
O Chrome introduz 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 no CSS.
Ele permite um controle tipográfico refinado, o que é particularmente útil para conteúdo multilíngue ou fontes com variantes de glifos específicos do idioma.
O atributo download no elemento SVG <a>
O Chrome introduz suporte ao atributo download na interface SVGAElement, alinhando-se à especificação SVG 2. O atributo download permite que os autores especifiquem que ele faz o download do 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 e 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 de 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 in-page 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 in-page 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 a dispositivos móveis e um pop-up de seleção múltipla a computadores, além de garantir 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 maneira:
- Quando o atributo
sizetem um valor maior que1, a renderização in-page é sempre usada. Os dispositivos móveis ignoravam isso antes. - Quando o atributo
multipleé definido sem o atributosize, a renderização in-page é usada. Os dispositivos móveis usavam um pop-up em vez de uma caixa de listagem in-page. - Quando o atributo
multipleé definido comsize=1, um pop-up é usado. Os dispositivos desktop usavam uma caixa de listagem in-page.
Ativação fixa do usuário em navegações de mesma origem iniciadas por renderizador
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 no foco automático. Isso bloqueou os desenvolvedores que querem criar MPAs em vez de SPAs.
Isso não abrange solicitações de navegação iniciadas pelo navegador (recarregamento, navegação no histórico, URL digitado na barra de endereço e assim por diante).
APIs Web
WebGPU: recurso primitive_index
O WebGPU adiciona um novo recurso opcional que expõe um novo shader integrado do WGSL, primitive_index. Ele fornece um índice por primitivo para shaders de fragmentos em hardware compatível, semelhante aos integrados vertex_index e instance_index. O índice primitivo é útil para técnicas gráficas avançadas, como geometria virtualizada.
WebGPU: níveis 1 e 2 de formatos de textura
Estenda o suporte ao formato de textura da GPU com recursos como anexo de renderização, mesclagem, multiamostragem, resolução e armazenamento_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 da área de transferência e de 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 só se aplica 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 enterpictureinpicture acionadas explicitamente pelo usuário (por exemplo, de um botão no user agent) e ações enterpictureinpicture acionadas automaticamente pelo user agent porque o conteúdo fica ocluído.
Tendência contextual da API Web Speech
Essa atualização permite que os sites ofereçam suporte à tendência 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 tendência aos modelos de reconhecimento de fala a favor dessas frases. Isso ajuda a melhorar a precisão e a relevância do reconhecimento de fala específico do domínio e personalizado.
Validação de token MIME *+json mais rigorosa para módulos JSON
Rejeite respostas de script de módulo JSON cujo tipo ou subtipo MIME contenha pontos de código de token não HTTP (por exemplo, espaços) quando correspondido a *+json. Isso está alinhado com a especificação de detecção de MIME e outros mecanismos. Ele faz parte da área de foco dos módulos Interop2025.
FedCM: suporte à exibição de origens de iframe de terceiros na interface
Antes do Chrome 142, o FedCM sempre mostrava o site de nível superior na interface.
Isso funciona bem quando o iframe é conceitualmente próprio (por exemplo, foo.com pode ter um iframe foostatic.com, que não é significativo para o usuário).
No entanto, se o iframe for de terceiros, é melhor mostrar a origem do iframe 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 app da Web de publicação de livros e pode querer permitir que os usuários acessem arquivos que armazenaram antes 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 do bloqueio de processos para um site (por exemplo, example.com) para o 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 origens, isolamos cada origem (por exemplo, https://foo.example.com) no próprio processo de renderização. Ele reforça a arquitetura de segurança do Chrome porque alinha os limites de processos com o modelo de segurança fundamental da Web baseado em origem, 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 importantes.
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 comprovante de posse de uma chave privada.
Pool de soquetes TCP por site de nível superior
Esse experimento avalia o impacto da mudança do tamanho do pool de soquetes TCP por perfil de 256 (o padrão) para 513, ao mesmo tempo em que adiciona um limite de 256 por site de nível superior (para garantir que nenhuma guia possa 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 a performance. Esses limites são impostos de forma independente para o pool de WebSocket e o pool de soquetes normal (HTTP).
A intenção é iniciar esse experimento diretamente se não ocorrerem efeitos negativos.