Publicado em: 25 de junho de 2025
Salvo indicação em contrário, as mudanças a seguir se aplicam à versão mais recente do canal Beta do Chrome para Android, ChromeOS, Linux, macOS e Windows. Saiba mais sobre os recursos listados aqui nos links fornecidos ou na lista em ChromeStatus.com. O Chrome 139 está na versão Beta desde 25 de junho de 2025. Faça o download da versão mais recente no Google.com para computadores ou na Google Play Store no Android.
CSS
Esta versão adiciona seis novos recursos de CSS e de interface.
Curto-circuito var() e attr()
Quando o substituto não é usado, as funções var() e attr() são avaliadas sem procurar ciclos nesse substituto. O CSS a seguir funciona porque --green e --blue existem.
--green: green;
--blue: blue;
--a: var(--green, var(--b));
--b: var(--blue, var(--a));
Propriedade caret-animation do CSS
O Chrome já oferecia suporte à animação da propriedade caret-color, mas, quando animado, o comportamento de piscada padrão do cursor de texto interferia na animação. A propriedade caret-animation do CSS tem dois valores possíveis: auto e manual. auto significa o padrão do navegador (piscando) e manual significa que o desenvolvedor web está controlando a animação do cursor de texto. A propriedade também permite que os usuários desativem a piscada usando uma folha de estilo do usuário.
Formato de canto
Ative os cantos de estilo, além do border-radius atual, especificando o formato ou a curvatura do canto. Isso permite criar formas como círculos quadrados, entalhes e colheres, e animar entre elas. Saiba mais neste post de Amit
Sheen.
Continuar a execução de transições ao mudar para o valor de transição inicial.
Quando as propriedades relacionadas à transição mudam, elas só afetam as transições recém-iniciadas. Isso significa que, se você mudar as propriedades de transição, a menos que também mude as propriedades que têm animações de transição ativas, essas animações de transição vão continuar com a duração, a facilidade etc. especificadas anteriormente. O Blink cancelou incorretamente as transições quando a propriedade de transição foi definida como "none", mesmo que não as cancele se você mudar apenas a duração da transição. Com esse recurso, o Blink será consistente com o WebKit e o Gecko, permitindo que as transições ativas continuem sendo executadas, a menos que ou até que o valor da propriedade mude, acionando uma nova atualização de transição.
Funções personalizadas de CSS
As funções personalizadas são semelhantes às propriedades personalizadas, mas, em vez de retornar um único valor fixo, elas retornam valores com base em outras propriedades personalizadas, parâmetros e condicionais.
@function --negate(--value) {
result: calc(var(--value) * -1);
}
div {
--gap: 1em;
margin-top: --negate(var(--gap));
}
Suporte a width e height como atributos de apresentação em elementos <svg> aninhados
Oferece suporte à aplicação de width e height como atributos de apresentação em elementos aninhados
<svg> usando a marcação SVG e o CSS. Essa abordagem dupla oferece ainda mais flexibilidade, permitindo que você gerencie e estilize elementos SVG com mais eficiência em designs complexos.
APIs Web
Manifesto do app da Web: especifica a qualificação para atualização, os URLs de ícones são Cache-Control: immutable
Especifique um algoritmo de qualificação de atualização na especificação do manifesto. Isso torna o processo de atualização mais determinista e previsível, aos desenvolvedores mais controle sobre se (e quando) as atualizações devem ser aplicadas às instalações atuais e permitindo a remoção da "limitação de verificação de atualização" que os agentes do usuário precisam implementar para evitar o desperdício de recursos de rede.
Melhorias de desempenho na detecção de profundidade da WebXR
Expõe vários novos mecanismos para personalizar o comportamento do recurso de detecção de profundidade em uma sessão da WebXR, com o objetivo de melhorar o desempenho da geração ou do consumo do buffer de profundidade. Os principais mecanismos expostos são: a capacidade de solicitar o buffer de profundidade bruto ou suave, a capacidade de solicitar que o ambiente de execução pare ou retome o buffer de profundidade e a capacidade de expor um buffer de profundidade que não se alinhe exatamente à visualização do usuário, para que o agente do usuário não precise realizar novas projeções desnecessárias a cada frame.
Permitir mais caracteres nas APIs JavaScript DOM
O analisador HTML sempre (ou por muito tempo) permitiu que elementos e atributos tivessem uma grande variedade de caracteres e nomes válidos, mas as APIs JavaScript DOM que criam os mesmos elementos e atributos são mais rigorosas e não correspondem ao analisador. Essa mudança relaxa a validação das APIs JavaScript DOM para corresponder ao analisador HTML.
Comando de invocador request-close
Os elementos de caixa de diálogo podem ser fechados por vários mecanismos. Às vezes, os desenvolvedores querem ter a capacidade de impedir o fechamento. Para isso, as caixas de diálogo acionam um evento de cancelamento. Originalmente, isso só era acionado por uma solicitação de fechamento (por exemplo, pressionamento da tecla Esc). Recentemente, uma função requestClose() JS foi adicionada, que também aciona o evento de cancelamento. O comando request-close traz essa nova capacidade para a API de comandos de invocador declarativo.
WebGPU: suporte a texturas 3D para formatos compactados BC e ASTC
Os recursos texture-compression-bc-sliced-3d e texture-compression-astc-sliced-3d da WebGPU adicionam suporte a texturas 3D para formatos compactados BC e ASTC, respectivamente.
Confirmação de pagamento seguro: chaves vinculadas ao navegador
Adiciona uma assinatura criptográfica adicional às declarações de confirmação de pagamento seguro e à criação de credenciais. A chave privada correspondente não é sincronizada entre dispositivos. Isso ajuda os desenvolvedores da Web a atender aos requisitos de vinculação de dispositivos para transações de pagamento.
Confirmação de pagamento seguro: atualização da UX
Atualiza os elementos da UX para a caixa de diálogo SPC no Android Chrome. Além da apresentação da UX, o seguinte está sendo adicionado:
- Permite que os comerciantes forneçam uma lista opcional de logotipos de entidades de pagamento relacionados ao pagamento que serão exibidos.
- Retornar diferentes estados de saída ao comerciante, dependendo se o usuário quer continuar a transação sem SPC ou cancelar a transação.
- Adiciona um novo campo de rótulo de detalhes de pagamento ao instrumento de pagamento para que o texto seja apresentado em duas linhas.
WebGPU core-features-and-limits
O recurso core-features-and-limits indica que um adaptador e um dispositivo WebGPU oferecem suporte aos principais recursos e limites da especificação.
Correção do candidato de prioridade de ancoragem de rolagem
Atualmente, o algoritmo de ancoragem de rolagem seleciona candidatos de prioridade quando eles estão disponíveis como destinos de ancoragem. Os candidatos de prioridade são um elemento editável focado e destaques de pesquisa in-page. Isso pode causar uma experiência do usuário abaixo do ideal se houver um grande elemento contenteditable focado que tenha conteúdo alterado fora da tela (o cursor acaba sendo deslocado como consequência). Essa correção muda o algoritmo: em vez de selecionar o candidato de prioridade como a âncora, use o candidato como o escopo ou a raiz do algoritmo de seleção de âncora normal que seleciona o elemento mais profundo na tela como a âncora.
Suporte ao atributo async para elementos <script> SVG
A interface SVGScriptElement no SVG 2.0 apresenta o atributo async, semelhante ao HTMLScriptElement. Esse atributo permite que os scripts sejam executados de forma assíncrona, melhorando o desempenho e a capacidade de resposta de aplicativos da Web que usam SVG.
API Web Speech no dispositivo
Esse recurso adiciona suporte ao reconhecimento de fala no dispositivo à API Web Speech, permitindo que os sites garantam que nem o áudio nem a fala transcrita sejam enviados a um serviço de terceiros para processamento. Os sites podem consultar a disponibilidade do reconhecimento de fala no dispositivo para idiomas específicos, pedir aos usuários que instalem os recursos necessários para o reconhecimento de fala no dispositivo e escolher entre o reconhecimento de fala no dispositivo ou baseado na nuvem, conforme necessário.
Limpar window.name para navegações entre sites que mudam o grupo de contexto de navegação
Atualmente, o valor da propriedade window.name é preservado durante todo o ciclo de vida de uma guia, mesmo com navegação que alterna grupos de contexto de navegação, o que pode vazar informações e ser potencialmente usado como um vetor de rastreamento.
Limpar a propriedade window.name resolve esse problema. Essa mudança deve ser de baixo risco, já que a pesquisa de um contexto de navegação por nome não funciona se ele estiver em outro grupo de contexto de navegação. Portanto, o nome não é útil.
Política empresarial: ClearWindowNameCrossSiteBrowsing (vai parar de funcionar no Chrome 142).
Extensões de escopo de apps da Web
Adiciona um campo de manifesto do app da Web "scope_extensions"
que permite que os apps da Web estendam o escopo para outras origens.
Isso permite que sites que controlam vários subdomínios e domínios de nível superior sejam apresentados como um único app da Web. Exige que as origens listadas confirmem a associação com o app da Web usando um arquivo de configuração .well-known/web-app-origin-association.
Detecção de tipo MIME JSON compatível com a especificação
O Chromium agora reconhece todos os tipos MIME JSON válidos, conforme definido pela especificação mimesniff do WHATWG. Isso inclui qualquer tipo MIME cujo subtipo termine com +json, além dos tradicionais application/json e text/json. Essa mudança garante que as APIs e os recursos da Web que dependem da detecção de JSON se comportem de maneira consistente com o padrão da plataforma da Web e outros navegadores. Uma motivação importante para essa mudança é corrigir o comportamento de importação de módulos JSON, em que tipos MIME JSON válidos anteriormente, como text/html+json e image/svg+json, não eram carregados como módulos.
API Private Aggregation: relatórios de erros agregados
Há uma variedade de condições de erro que podem ser atingidas ao usar a API Private Aggregation. Por exemplo, o orçamento de privacidade pode acabar, impedindo outras contribuições de histograma. Esse recurso permite que os desenvolvedores registrem contribuições de histograma que só serão enviadas se ocorrer um tipo específico de erro. Esse recurso oferece suporte à medição da frequência das condições de erro e à divisão dessas medições em dimensões relevantes especificadas pelo desenvolvedor (por exemplo, versão do código implantado). Como os erros podem ser informações entre sites, não podemos simplesmente expô-los à página para usuários sem cookies de terceiros. Em vez disso, esse recurso reutiliza os pipelines de relatórios agregados e com ruído atuais pelo serviço de agregação.
API Crash Reporting: especifique crash-reporting para receber apenas relatórios de erros
Esse recurso garante que os desenvolvedores recebam apenas relatórios de erros especificando o endpoint chamado crash-reporting. Por padrão, os relatórios de erros são entregues ao endpoint default, que recebe muitos outros tipos de relatórios além de relatórios de erros. Os desenvolvedores podem fornecer um URL separado para o endpoint conhecido chamado crash-reporting, para direcionar relatórios de erros para lá, em vez do endpoint default.
Reduzir as técnicas de impressão digital nas informações do cabeçalho Accept-Language
Reduz a quantidade de informações que a string de valor do cabeçalho Accept-Language expõe em solicitações HTTP e em navigator.languages. Em vez de enviar uma lista completa dos idiomas preferidos do usuário em cada solicitação HTTP com o cabeçalho Accept-Language. Agora enviamos o idioma preferido do usuário no cabeçalho Accept-Language. Para minimizar os riscos de compatibilidade, o lançamento inicial reduz as informações no cabeçalho HTTP. Vamos reduzir os getters JavaScript navigator.languages relacionados no futuro.
O evento de erro é disparado em vez de gerar para o worker bloqueado pela CSP
Quando bloqueado pela Política de Segurança de Conteúdo (CSP), o Chrome atualmente gera um SecurityError do construtor de Worker e SharedWorker. A
especificação exige que a CSP seja verificada como parte da busca e aciona eventos de erro
de forma assíncrona, em vez de gerar uma exceção quando um script executa new
Worker(url) ou new SharedWorker(url). Essa mudança torna o Chrome compatível com a especificação: não gera durante o construtor e aciona eventos de erro de forma assíncrona.
Nível de áudio para frames codificados de RTC
Expõe à Web o nível de áudio de um frame codificado transmitido com RTCPeerConnection e exposto usando a transformação codificada da WebRTC.
Novos testes de origem
No Chrome 139, você pode ativar os seguintes novos testes de origem.
API Prompt
A API Prompt foi projetada para interagir com um modelo de linguagem de IA usando entradas de texto, imagem e áudio. Ele oferece suporte a vários casos de uso, desde gerar legendas de imagens e realizar pesquisas visuais até transcrever áudio, classificar eventos sonoros, gerar texto seguindo instruções específicas e extrair informações ou insights de texto. Ele oferece suporte a saídas estruturadas, que garantem que as respostas sigam um formato predefinido, geralmente expresso como um esquema JSON, para melhorar a conformidade da resposta e facilitar a integração perfeita com aplicativos downstream que exigem formatos de saída padronizados. Essa API também é exposta nas extensões do Chrome. Esse teste de origem é para exposição na Web.
Atributo de bloqueio de renderização de frame rate completo
Propomos adicionar um novo token de bloqueio de renderização full-frame-rate aos atributos de bloqueio. Quando o renderizador é bloqueado com o token full-frame-rate, ele funciona com uma taxa de frames mais baixa para reservar mais recursos para carregamento.
Modo de compatibilidade da WebGPU
Adiciona um subconjunto ativado e levemente restrito da API WebGPU capaz de executar APIs gráficas mais antigas, como OpenGL e Direct3D11. Ao ativar esse modo e obedecer às restrições dele, os desenvolvedores podem estender o alcance dos aplicativos WebGPU a muitos dispositivos mais antigos que não têm as APIs gráficas modernas e explícitas exigidas pela WebGPU principal. Para aplicativos simples, a única
mudança necessária é especificar o "compatibility" featureLevel ao chamar
requestAdapter. Para aplicativos mais avançados, algumas modificações podem ser necessárias para acomodar as restrições do modo. Como o modo de compatibilidade é um subconjunto, os aplicativos resultantes também são aplicativos principais da WebGPU válidos e serão executados mesmo em agentes do usuário que não oferecem suporte ao modo de compatibilidade.
Descontinuações e remoções
Esta versão do Chrome apresenta as descontinuações e remoções listadas abaixo. Acesse ChromeStatus.com para conferir listas de descontinuações planejadas, descontinuações atuais e remoções anteriores.
Esta versão do Chrome remove dois recursos.
Remover o suporte para o macOS 11
O Chrome 138 é a última versão com suporte para o macOS 11. A partir do Chrome 139, o macOS 11 não é mais compatível, já que está fora do período de suporte da Apple. A execução em um sistema operacional com suporte é essencial para manter a segurança. Em Macs com o macOS 11, o Chrome vai continuar funcionando, mostrando uma barra de informações de aviso, mas não vai ser atualizado. Se um usuário quiser atualizar o Chrome, será necessário atualizar o computador para uma versão compatível do macOS. Para novas instalações do Chrome 139 e versões mais recentes, será necessário o macOS 12 ou mais recente.
Remover a detecção automática do conjunto de caracteres ISO-2022-JP no HTML
Há problemas de segurança conhecidos relacionados à detecção automática de conjuntos de caracteres para ISO-2022-JP. Como o uso é muito baixo e o Safari não oferece suporte à detecção automática de ISO-2022-JP, o Chrome remove o suporte para eliminar os problemas de segurança.