Beta do Chrome 139

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 em Google.com para computador ou na Google Play Store para Android.

CSS

Nesta versão, adicionamos seis novos recursos de CSS e 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 CSS caret-animation

O Chrome já oferecia suporte à animação da propriedade caret-color, mas, quando animado, o comportamento padrão de intermitência do cursor interferia na animação. A propriedade CSS caret-animation tem dois valores possíveis: auto e manual. auto significa o padrão do navegador (intermitente), e manual significa que o desenvolvedor da Web está controlando a animação do cursor. A propriedade também permite que os usuários desativem o recurso usando uma folha de estilo do usuário.

Modelagem de cantos

Ative o estilo dos cantos, além do border-radius atual, especificando o formato ou a curvatura do canto. Isso permite criar formas como squirculos, entalhes e furos, e animar entre eles. Saiba mais nesta postagem de Amit Sheen.

Continuar executando transições ao mudar para o valor de transição inicial.

Quando as propriedades relacionadas à transição mudam, elas só afetam transições iniciadas recentemente. 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 vão continuar com a duração, a aceleração etc. especificadas anteriormente. O Blink cancelava incorretamente as transições quando a propriedade de transição era definida como "none", mesmo que não as cancelasse se você mudasse 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 valor único e 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

Permite aplicar width e height como atributos de apresentação em elementos <svg> aninhados usando marcação SVG e CSS. Essa abordagem dupla oferece ainda mais flexibilidade, permitindo gerenciar e estilizar elementos SVG de maneira mais eficiente em designs complexos.

APIs Web

Manifesto do app da Web: especifique a qualificação para atualização, os URLs dos ícones são Cache-Control: immutable

Especifique um algoritmo de qualificação para 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. Além disso, permite a remoção da "limitação de verificação de atualização" que os user agents precisam implementar para evitar o desperdício de recursos de rede.

Melhorias de desempenho da API WebXR Depth Sensing

Expõe vários mecanismos novos para personalizar o comportamento do recurso de detecção de profundidade em uma sessão 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 suavizado, a capacidade de solicitar que o tempo de execução pare ou retome o fornecimento do buffer de profundidade e a capacidade de expor um buffer de profundidade que não se alinha exatamente com a visualização do usuário , para que o user agent não precise realizar reprojeções desnecessárias a cada frame.

Permitir mais caracteres nas APIs DOM JavaScript

O analisador HTML sempre (ou há 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 flexibiliza a validação das APIs DOM do JavaScript para corresponder ao analisador de 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 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 do invocador declarativo.

WebGPU: compatibilidade com texturas 3D para formatos compactados BC e ASTC

Os recursos texture-compression-bc-sliced-3d e texture-compression-astc-sliced-3d do 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 extra à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 do SPC no Chrome para Android. Além da apresentação da UX, os seguintes recursos estão sendo adicionados:

  • Permite que os comerciantes forneçam uma lista opcional de logotipos de entidades de pagamento relacionados ao pagamento que será exibido.
  • Retornar diferentes estados de saída ao comerciante, dependendo se o usuário quer continuar ou cancelar a transação sem o SPC.
  • Adiciona um novo campo de rótulo de detalhes de pagamento ao instrumento para que o texto seja apresentado em duas linhas.

WebGPU core-features-and-limits

O recurso core-features-and-limits significa que um adaptador e um dispositivo WebGPU oferecem suporte aos principais recursos e limites da especificação.

Correção de candidato prioritário para fixação de rolagem

No momento, o algoritmo de fixação de rolagem seleciona candidatos prioritários quando eles estão disponíveis como destinos de fixação. No momento, os candidatos prioritários são um elemento editável focado e destaques de localizar na página. Isso pode causar uma experiência do usuário ruim se houver um elemento contenteditable grande e focado com conteúdo alterado fora da tela. Como consequência, o cursor acaba sendo movido. 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 regular que seleciona o elemento mais profundo na tela como a âncora.

Compatibilidade com o atributo async para elementos <script> do SVG

A interface SVGScriptElement no SVG 2.0 introduz 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 dos 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

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 é 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 deixar 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 web app. Exige que as origens listadas confirmem a associação com o web app 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 da Web e os recursos que dependem da detecção de JSON se comportem de maneira consistente com o padrão da plataforma da Web e outros navegadores. Uma das principais motivações para essa mudança é corrigir o comportamento de importação do módulo 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á várias condições de erro que podem ocorrer ao usar a API Private Aggregation. Por exemplo, o orçamento de privacidade pode acabar, impedindo outras contribuições de histograma. Com esse recurso, os desenvolvedores podem registrar contribuições de histograma que só serão enviadas se ocorrer um tipo específico de erro. Esse recurso ajuda a medir a frequência das condições de erro e dividir essas 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 Aggregation Service.

API Crash Reporting: especifique "crash-reporting" para receber apenas relatórios de erros

Esse recurso garante que os desenvolvedores recebam apenas relatórios de falhas especificando o endpoint chamado crash-reporting. Por padrão, os relatórios de erros são enviados ao endpoint default, que recebe muitos outros tipos de relatórios além dos de erros. Os desenvolvedores podem fornecer um URL separado para o endpoint conhecido chamado crash-reporting, para direcionar relatórios de falhas a ele, 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 todas as solicitações 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. No futuro, vamos reduzir os getters navigator.languages JavaScript relacionados.

O evento de erro é disparado em vez de gerar uma exceção para o worker bloqueado pela CSP.

Quando bloqueado pela Política de Segurança de Conteúdo (CSP), o Chrome gera um SecurityError do construtor de Worker e SharedWorker. A especificação exige que o CSP seja verificado como parte da busca e dispare 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 exceções durante o construtor e dispara 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 do 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 a geração de legendas de imagens e a realização de pesquisas visuais até a transcrição de áudio, a classificação de eventos sonoros, a geração de texto seguindo instruções específicas e a extração de informações ou insights de texto. Ele é compatível com 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 taxa de frames completa

Propomos adicionar um novo token de bloqueio de renderização full-frame-rate aos atributos de bloqueio. Quando o renderizador é bloqueado com o token de taxa de frames completa, ele funciona com uma taxa de frames menor para reservar mais recursos para o carregamento.

Modo de compatibilidade com WebGPU

Adiciona um subconjunto de inclusão opcional e levemente restrito da API WebGPU capaz de executar APIs de gráficos 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 para muitos dispositivos mais antigos que não têm as APIs de gráficos modernas e explícitas exigidas pelo 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 WebGPU Core válidos e serão executados mesmo em user agents que não oferecem suporte ao modo de compatibilidade.

Descontinuações e remoções

Esta versão do Chrome apresenta as suspensões de uso e remoções listadas abaixo. Acesse ChromeStatus.com para conferir listas de suspensões de uso planejadas, atuais e remoções anteriores.

Esta versão do Chrome remove dois recursos.

Remover o suporte ao 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 será 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, ele precisará 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 em HTML

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.