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.
Particionamento do histórico de links :visited
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.