Chrome 136 Beta

Publicado em 3 de abril de 2025

A menos que indicado de outra forma, 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 136 é Beta desde 3 de abril de 2025. Faça o download da versão mais recente no Google.com para computadores ou na Google Play Store no Android.

CSS e interface

Esta versão adiciona seis novos recursos de CSS e interface.

Propriedade CSS dynamic-range-limit

Permite que uma página limite o brilho máximo do conteúdo HDR.

Ignorar o espaçamento entre letras em scripts cursivos

Esse recurso adiciona lógica para ignorar a configuração de espaçamento entre letras para scripts cursivos, mesmo que especificados pelo desenvolvedor de acordo com a especificação, para garantir que o espaçamento entre letras não quebre as palavras.

Para eliminar vazamentos de histórico de navegação do usuário, os elementos âncora são estilizados como :visited somente se tiverem sido clicados anteriormente a partir dessa origem de site e frame de nível superior.

Ao estilizar apenas os links que foram clicados neste site e frame antes, os vários ataques de canal lateral que foram desenvolvidos para extrair informações de estilo de links :visited estão obsoletos. Eles não fornecem mais aos sites novas informações sobre os usuários.

Saiba mais sobre essas melhorias na privacidade dos links :visited.

Renomear o tipo attr() string como raw-string

O grupo de trabalho do CSS resolveu substituir o tipo attr() string por raw-string.

Portanto, o Chrome mudou a sintaxe de attr(), de modo que attr(data-foo string) agora seja attr(data-foo raw-string).

Alternativa var() independente de tipo

A parte de substituição de uma função var() não é validada pelo tipo da propriedade personalizada que está sendo referenciada.

print-color-adjust sem prefixo

A propriedade print-color-adjust permite ajustar as cores em páginas da Web impressas. É o mesmo que o -webkit-print-color-adjust já aceito pelo Chrome, mas com um nome padronizado. A versão com prefixo -webkit não é removida.

APIs Web

Estado de interrupção do AudioContext

Adiciona um estado "interrupted" a AudioContextState. Esse novo estado permite que o UA pause a reprodução nesses cenários e permita que os aplicativos da Web respondam adequadamente.

Particionamento de URL de blobs: busca/navegação

Como continuação do particionamento de armazenamento, isso implementa o particionamento do acesso ao URL do blob por chave de armazenamento (site de nível superior, origem do frame e o booleano has-cross-site-ancestor), com exceção das navegações de nível superior que vão permanecer particionadas apenas pela origem do frame. Esse comportamento é semelhante ao implementado atualmente pelo Firefox e pelo Safari e alinha o uso do URL do blob com o esquema de particionamento usado por outras APIs de armazenamento como parte do particionamento de armazenamento.

Além disso, o noopener agora é aplicado em navegações de alto nível iniciadas pelo renderizador para URLs blob em que o site correspondente é de um domínio diferente em relação ao site de nível superior que realiza a navegação. Isso alinha o Chrome a um comportamento semelhante no Safari, e as especificações relevantes foram atualizadas para refletir essas mudanças.

Pilhas de chamadas em relatórios de erros de páginas da Web que não respondem

Esse recurso captura a pilha de chamadas do JavaScript quando uma página da Web para de responder devido a um código JavaScript que executa um loop infinito ou outra computação muito longa. Isso ajuda os desenvolvedores a identificar a causa da falta de resposta. A pilha de chamadas do JavaScript é incluída na API de relatório de falhas quando o motivo não responde.

API Captured Surface Control

A API Captured Surface Control permite que os aplicativos da Web encaminhem eventos de roda para uma guia capturada e leiam e mudem o nível de zoom de uma guia capturada.

CapturedSurfaceResolution

Expõe a proporção de pixels da superfície capturada durante o compartilhamento de tela. Esse recurso ajuda os aplicativos a conservar os recursos do sistema ou adaptar a troca de qualidade e largura de banda de acordo com as resoluções física e lógica da superfície capturada.

Enviar eventos de clique para o ponteiro capturado

Se um ponteiro for capturado enquanto o evento pointerup estiver sendo enviado, o evento click será enviado para o destino capturado em vez do ancestral comum mais próximo dos eventos pointerdown e pointerup, de acordo com a especificação do evento da IU. Para ponteiros não capturados, o destino click permanece inalterado.

Dicas de compilação explícitas com comentários mágicos

Permite a anexação de informações sobre quais funções devem ser analisadas e compiladas em arquivos JavaScript. As informações serão codificadas como comentários mágicos.

Atualizações da FedCM: suporte a vários provedores de identidade (IdPs, na sigla em inglês) e remoção do recurso "Adicionar outra conta" no modo passivo

Com essa atualização, a FedCM pode mostrar vários provedores de identidade na mesma caixa de diálogo. Isso oferece aos desenvolvedores uma maneira conveniente de apresentar todos os provedores de identidade com suporte aos usuários. Planejamos primeiro abordar o caso simples de ter todos os provedores na mesma chamada get(). Também estamos removendo o suporte ao recurso "adicionar outra conta" no modo passivo do FedCM. Esse recurso permite mostrar um botão "Usar outra conta" com outras contas de IdP no seletor. O recurso não está sendo usado no momento, e as conversas de UX nos levaram a acreditar que oferecer suporte a ele leva a um fluxo mais complicado sem muitos benefícios. Esse recurso ainda vai funcionar no modo ativo do FedCM.

Barras de rolagem fluentes.

Esse recurso moderniza as barras de rolagem do Chrome (com e sem sobreposição) no Windows e no Linux para se ajustar à linguagem de design Fluent do Windows 11. As barras de rolagem Fluent não sobrepostas serão ativadas por padrão no Linux e no Windows. Essa mudança também se aplica ao Linux porque o design da barra de rolagem do Chrome para Linux sempre foi alinhado com o que é enviado no Windows.

Compatibilidade com o codec H265 (HEVC) no WebRTC

No Chrome 136, o HEVC vai se juntar ao VP8, H.264, VP9 e AV1 como codecs compatíveis no WebRTC. O suporte poderá ser consultado usando a API MediaCapabilities.

Esse codec mais recente aumentou a eficiência de compactação (maior qualidade por taxa de bits) em relação aos codecs de geração mais antiga, como VP8 e H264, e oferece um suporte muito forte a hardwares há mais de uma década. Isso significa maior duração da bateria e redução do risco de problemas de desempenho. Além disso, dependendo do desempenho do codificador de hardware, a experiência visual vai melhorar nos casos em que os codificadores VP9 ou AV1 de hardware não estão disponíveis.

Atualizações de suporte ao codec H26x para o MediaRecorder

A API MediaRecorder agora oferece suporte à codificação HEVC, introduzindo a string de codec hvc1.* e adicionando novos codecs (hev1.* e avc3.*) que oferecem suporte a vídeos de resolução variável em MP4. A compatibilidade com a codificação de plataforma HEVC foi adicionada aos WebCodecs no Chrome 130. Como acompanhamento, adicionamos suporte à API MediaRecorder no Chromium. A API agora oferece suporte aos tipos de muxer MP4 e Matroska com diferentes especificações de tipo mime HEVC e H.264. A codificação HEVC só é compatível se o dispositivo e o sistema operacional do usuário oferecerem os recursos necessários.

Geração de relatórios e registro de endereços IP no Chrome Enterprise

O Chrome Enterprise está aprimorando os recursos de monitoramento de segurança e resposta a incidentes coletando e informando endereços IP locais e remotos e enviando esses endereços aos registros de investigação de segurança (SIT, na sigla em inglês). Além disso, o Chrome Enterprise permite que os administradores enviem os endereços IP a provedores de SIEM próprios e de terceiros usando o conector de relatórios do Chrome Enterprise. Esse recurso vai estar disponível para clientes do Chrome Enterprise Core.

Incorporar o iniciador de navegação à chave de partição de cache HTTP

O esquema de chaveamento de cache HTTP do Chrome foi atualizado para incluir um booleano is-cross-site-main-frame-navigation para mitigar ataques de vazamento entre sites envolvendo navegação de nível superior. Especificamente, isso vai impedir ataques entre sites em que um invasor pode iniciar uma navegação de nível superior para uma página específica e depois navegar para um recurso conhecido por ser carregado pela página para inferir informações sensíveis do tempo de carregamento. Essa mudança também melhora a privacidade, impedindo que um site malicioso use navegações para inferir se um usuário já visitou um determinado site anteriormente.

Suporte a idiomas para CanvasTextDrawingStyles

O elemento DOM <canvas>, como todos os elementos DOM, aceita um atributo lang que é usado para definir o tratamento específico do idioma para a seleção de fontes (quando as fontes têm glifos específicos da localidade). Os navegadores respeitam esse atributo. No entanto, quando uma OffscreenCanvas é criada, não há como definir informações de localidade, o que pode resultar em um estado em que uma tela offscreen produz resultados renderizados diferentes da tela em que a saída é usada. Esse recurso adiciona um atributo IDL lang a CanvasTextDrawingStyles para dar controle direto sobre a linguagem para o desenho de texto e as métricas.

Relatórios da Política de permissões para iframes

Apresenta um novo tipo de violação chamado "Possível violação da política de permissões", que só vai analisar a política de permissões (incluindo a política somente para relatórios) e o atributo allow definido em iframes para detectar o conflito entre a política de permissões aplicada e as permissões propagadas para iframes.

Cota de armazenamento informada previsível

Informe uma cota de armazenamento previsível da API Estimate do StorageManager para sites que não têm permissões de armazenamento ilimitadas. É possível detectar o modo de navegação de um usuário usando a cota de armazenamento informada, porque o espaço de armazenamento disponibilizado é significativamente menor no modo de navegação anônima do que no modo normal.

API Private Aggregation: relatórios de erros agregados

Há uma variedade de 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. Esse recurso permite que os desenvolvedores registrem contribuições de histograma que só serão enviadas se um tipo específico de erro ocorrer. 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, a versão do código implantado). Como os erros podem ser informações entre sites, não podemos simplesmente expor esses erros na página para usuários sem cookies de terceiros. Em vez disso, esse recurso reutiliza os pipelines de relatórios agregados e com ruídos existentes pelo serviço de agregação.

RegExp.escape

RegExp.escape é um método estático que recebe uma string e retorna uma versão com escape que pode ser usada como um padrão dentro de uma expressão regular. Exemplo:

const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.

console.log(ourLongText.replace(re));

Regras de especulação: campo de tag

Permite que os desenvolvedores adicionem a tag field às regras de especulação. Esse campo opcional pode ser usado para rastrear a origem das regras de especulação. Por exemplo, para tratá-los de maneira diferente em um servidor intermediário. Todas as tags associadas a uma especulação serão enviadas com o cabeçalho Sec-Speculation-Tags.

Política rígida de mesma origem para a API Storage Access

Ajusta a semântica da API Storage Access para seguir estritamente a política de mesma origem. Ou seja, o uso de document.requestStorageAccess() em um frame anexa cookies às solicitações para a origem do iframe (não ao site) por padrão. A política CookiesAllowedForUrls ou os cabeçalhos de acesso ao armazenamento ainda podem ser usados para desbloquear cookies entre sites.

Atualização do ProgressEvent para usar o tipo duplo para loaded e total

O ProgressEvent tem os atributos loaded e total indicando o progresso, e o tipo deles agora é unsigned long long. Com esse recurso, o tipo desses dois atributos é alterado para double, o que dá ao desenvolvedor mais controle sobre o valor. Por exemplo, os desenvolvedores agora podem criar um ProgressEvent com o total de 1 e o loaded aumentando gradualmente de 0 a 1. Isso está alinhado com o comportamento padrão do elemento HTML <progress> se o atributo max for omitido.

Use DOMPointInit para getCharNumAtPosition, isPointInFill e isPointInStroke

Essa mudança alinha o código do Chromium à especificação mais recente do W3C para SVGGeometryElement e SVGPathElement em termos de uso de DOMPointInit em vez de SVGPoint para getCharNumAtPosition, isPointInFill, isPointInStroke.

Criação condicional da autenticação da Web (upgrades de chaves de acesso)

As solicitações de criação condicional da WebAuthn permitem que os sites façam upgrade das credenciais de senha para uma chave de acesso.

WebGPU: atributo isFallbackAdapter GPUAdapterInfo

O atributo booleano isFallbackAdapter GPUAdapterInfo indica se um adaptador tem limitações de desempenho significativas em troca de uma compatibilidade maior, um comportamento mais previsível ou uma privacidade melhorada. Um adaptador alternativo pode não estar presente em todos os sistemas.

Novos testes de origem

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

API Audio Output Devices: setDefaultSinkId()

Esse recurso adiciona setDefaultSinkId() ao MediaDevices, o que permite que o frame de nível superior mude o dispositivo de saída de áudio padrão usado pelos subframes.

Permitir que os aplicativos da Web entendam os tempos de desempenho bimodal

Os aplicativos da Web podem sofrer com a distribuição bimodal na performance de carregamento de página devido a fatores fora do controle do aplicativo da Web. Exemplo:

  • Quando um agente do usuário é iniciado pela primeira vez (um cenário de "inicialização a frio"), ele precisa realizar muitas tarefas de inicialização caras que competem por recursos no sistema.
  • As extensões do navegador podem afetar o desempenho de um site. Por exemplo, algumas extensões executam códigos adicionais em todas as páginas que você visita, o que pode aumentar o uso da CPU e resultar em tempos de resposta mais lentos.
  • Quando uma máquina está ocupada realizando tarefas intensas, o carregamento de páginas da Web pode ficar mais lento.

Nesses cenários, o conteúdo que o app da Web tenta carregar estará em competição com outros trabalhos que estão acontecendo no sistema. Isso dificulta a detecção de problemas de desempenho nos próprios aplicativos da Web ou devido a fatores externos.

Um novo campo confidence no objeto PerformanceNavigationTiming vai permitir que os desenvolvedores discernam se os tempos de navegação são representativos para o aplicativo da Web.

Credenciais de sessões vinculadas ao dispositivo

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

Ele permite que os servidores tenham uma sessão vinculada com segurança a um dispositivo. O navegador vai renovar a sessão periodicamente conforme solicitado pelo servidor, com prova de posse de uma chave privada.

Atualização da implementação de renderização de texto da tela

Os elementos internos de CanvasRenderingContext2D e OffscreenCanvasRenderingContext2D measureText(), fillText() e strokeText() foram substituídos por uma nova implementação que oferece melhor suporte a texto RTL e armazenamento em cache. Isso pode afetar o desempenho e a saída de texto BIDI. Portanto, esse teste de origem permite que aplicativos de tela com muito texto testem a nova implementação e informem os problemas encontrados.

Suspensões de uso e remoções

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

Esta versão do Chrome descontinua dois recursos.

Descontinuação de getters de informações de localidade Intl

A API Intl Locale Info é uma proposta TC39 do ECMAScript de fase 3 para aprimorar o objeto Intl.Locale expondo informações de localidade, como dados de semana (primeiro dia da semana, dia de início do fim de semana, dia de término do fim de semana, dia mínimo da primeira semana) e ciclo de direção de texto por hora usado na localidade. Essa mudança remove alguns getters descontinuados em uma mudança de especificação desde o lançamento.

O HTMLFencedFrameElement.canLoadOpaqueURL() foi removido.

canLoadOpaqueURL() foi substituído por navigator.canLoadAdAuctionFencedFrame() em 2023, e a chamada resultou em um aviso de descontinuação no console desde que os desenvolvedores foram direcionados para a nova API. Não faz sentido ter a função anexada a HTMLFencedFrameElement. Em vez disso, ela precisa ser anexada ao objeto navigator, que contém outros métodos de frame limitado e leilão de anúncios.