Chrome 136 Beta

Publicado em: 3 de abril 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 136 está na versão Beta desde 3 de abril de 2025. Faça o download da versão mais recente em 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 especificada pelo desenvolvedor de acordo com a especificação, para garantir que o espaçamento entre letras não quebre palavras.

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

Ao estilizar apenas os links que já foram clicados nesse site e frame, os muitos ataques de canal lateral que foram desenvolvidos para coletar informações de estilo de links :visited agora 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 string attr() tipo para raw-string

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

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

Substituição var() independente de tipo

A parte de substituição de uma função var() não é validada em relação ao 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 -webkit-print-color-adjust, que já tem suporte no Chrome, mas com um nome padronizado. A versão com prefixo -webkit não é removida.

APIs Web

Estado interrompido do AudioContext

Adiciona um estado "interrupted" a AudioContextState. Esse novo estado permite que o UA pause a reprodução nesses cenários e permite 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 de 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 JavaScript quando uma página da Web deixa 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 JavaScript é incluída na API de relatórios de erros quando o motivo é a falta de resposta.

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 qualidade e a compensação de largura de banda de acordo com as resoluções físicas e lógicas 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, conforme a especificação do evento de interface. Para ponteiros não capturados, o destino click permanece inalterado.

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

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

Atualizações do FedCM: suporte a vários IdPs, remoção do recurso "adicionar outra conta" no modo passivo

Com essa atualização, o 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 compatíveis aos usuários. Estamos planejando abordar primeiro o caso simples de ter todos os provedores na mesma chamada get(). Também estamos removendo o suporte para o 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. No momento, o recurso não está sendo usado, e as conversas de UX nos levaram a acreditar que o 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 (sobrepostas e não sobrepostas) no Windows e no Linux para se adequar à linguagem de design Fluent do Windows 11. As barras de rolagem fluentes 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 ao que é enviado no Windows.

Suporte ao codec H265 (HEVC) no WebRTC

A partir do Chrome 136, o HEVC vai se juntar ao VP8, H.264, VP9 e AV1 como codecs com suporte no WebRTC. O suporte poderá ser consultado usando a API MediaCapabilities.

Esse codec mais recente tem maior eficiência de compactação (qualidade mais alta por taxa de bits) em relação aos codecs de geração mais antiga, como VP8 e H264, e um suporte de hardware muito forte há mais de uma década. Isso se traduz em maior duração da bateria e menor risco de problemas de desempenho e, dependendo da performance do codificador de hardware subjacente, geralmente melhora a experiência visual nos casos em que os codificadores de hardware VP9 ou AV1 não estão disponíveis.

Atualizações de suporte ao codec H26x para 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ídeo de resolução variável em MP4. O suporte à codificação de plataforma HEVC foi adicionado ao WebCodecs no Chrome 130. Como acompanhamento, o suporte foi adicionado à 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 fornecerem os recursos necessários.

Registro e relatórios 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 permitirá que os administradores enviem os endereços IP para provedores de SIEM internos e de terceiros usando o conector de relatórios do Chrome Enterprise. Essa opção vai estar disponível para clientes do Chrome Enterprise Core.

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

O esquema de chaveamento de cache HTTP do Chrome é atualizado para incluir um booleano is-cross-site-main-frame-navigation para atenuar ataques de vazamento entre sites que envolvem 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 determinada página e, em seguida, navegar até 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.

Suporte a idiomas para CanvasTextDrawingStyles

O elemento DOM <canvas>, como todos os elementos DOM, aceita um atributo lang 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 um OffscreenCanvas é criado, não há como definir informações de localidade, o que pode resultar em um estado em que uma tela fora da tela 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 o idioma para o desenho e as métricas de texto.

Relatórios de política de permissões para iframes

Introduz um novo tipo de violação chamado "Violação potencial da política de permissões", que só vai analisar a política de permissões (incluindo a política somente de relatório) 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

Informar uma cota de armazenamento previsível da API de estimativa 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 pela 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 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ó precisam ser 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 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 escapada que pode ser usada como um padrão em 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á-las 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 apenas a solicitações à origem do iframe (não ao site) por padrão. Observação: a política CookiesAllowedForUrls ou os cabeçalhos de acesso ao armazenamento ainda podem ser usados para desbloquear cookies entre sites.

Atualizar o ProgressEvent para usar o tipo duplo para loaded e total

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

Usar DOMPointInit para getCharNumAtPosition, isPointInFill, isPointInStroke

Essa mudança alinha o código do Chromium com a 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 de autenticação da Web (upgrades de chave de acesso)

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

WebGPU: atributo GPUAdapterInfo isFallbackAdapter

O atributo booleano GPUAdapterInfo isFallbackAdapter indica se um adaptador tem limitações significativas de desempenho em troca de maior compatibilidade, comportamento mais previsível ou privacidade aprimorada. Um adaptador de fallback 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 bimodais

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

  • Quando um user agent é iniciado pela primeira vez (um cenário de "inicialização a frio"), ele precisa executar muitas tarefas de inicialização caras que competem por recursos no sistema.
  • As extensões do navegador podem afetar a performance de um site. Por exemplo, algumas extensões executam um código extra 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 executando tarefas intensivas, isso pode levar a um carregamento mais lento das páginas da Web.

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 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 comprovante de posse de uma chave privada.

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

Os elementos internos de measureText(), fillText() e strokeText() do CanvasRenderingContext2D e do OffscreenCanvasRenderingContext2D foram substituídos por uma nova implementação que oferece melhor suporte a texto RTL e armazenamento em cache. Isso pode afetar a performance 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 quaisquer problemas que possam encontrar.

Descontinuações e remoções

Esta versão do Chrome apresenta as seguintes descontinuações e remoções. Acesse 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 internacional

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 que foram enviados.

Remover HTMLFencedFrameElement.canLoadOpaqueURL().

canLoadOpaqueURL() foi substituído por navigator.canLoadAdAuctionFencedFrame() em 2023, e a chamada dele resultou em um aviso de console de descontinuação desde então, apontando os desenvolvedores 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 isolado e leilão de anúncios.