Data de lançamento da versão estável:29 de abril de 2025
A menos que indicado de outra forma, as mudanças a seguir se aplicam à versão do canal estável do Chrome 136 para Android, ChromeOS, Linux, macOS e Windows.
HTML e DOM
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 um OffscreenCanvas
é criado, não há como definir informações de localidade,
resultando 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 aos desenvolvedores controle
direto sobre a linguagem para o desenho de texto e as métricas.
Rastreamento do bug #385006131 | Entrada do ChromeStatus.com | Especificação
CSS e interface
A propriedade dynamic-range-limit
Permite que uma página limite o brilho máximo do conteúdo HDR.
Rastreamento do bug #1470298 | Entrada do ChromeStatus.com | Especificação
Histórico de links da partição :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.
Há uma exceção para "links diretos", em que os links para as páginas de um site podem ter o estilo :visited
, mesmo que não tenham sido clicados nessa origem exata do site e do frame de nível superior. Essa isenção só é ativada em
frames ou subframes de nível superior que têm a mesma origem do frame de nível superior.
Os benefícios de privacidade ainda são alcançados porque os sites já sabem quais
das subpáginas um usuário visitou. Assim, nenhuma nova informação é exposta. Essa foi uma
exceção solicitada pela comunidade que melhora a experiência do usuário.
Rastreamento do bug #1448609 | Entrada do ChromeStatus.com | Especificação
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.
Documentação do MDN | Bug de rastreamento #376381169 | Entrada do ChromeStatus.com | Especificação
Renomear o tipo attr()
string
como raw-string
O grupo de trabalho do CSS decidiu substituir o tipo attr()
string
por
raw-string
.
Portanto, a partir do Chrome 136, attr(data-foo string)
se torna
attr(data-foo raw-string)
.
Bug de rastreamento #400981738 | Entrada do ChromeStatus.com | Especificação
Alternativa var()
independente de tipo
A parte de substituto de uma função var()
não é validada com base no tipo da
propriedade personalizada referenciada.
Rastreamento do bug #372475301 | Entrada do ChromeStatus.com
APIs Web
Enviar eventos de clique para o ponteiro capturado
Se um ponteiro for capturado enquanto o evento pointerup
estiver sendo enviado, o
evento click
agora 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 interface.
Para ponteiros não capturados, o destino click
permanece inalterado.
Rastreamento do bug #40851596 | Entrada do ChromeStatus.com | Especificação
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 são codificadas como comentários mágicos.
Rastreamento do bug #13917 | Entrada do ChromeStatus.com | Especificação
Incorporar o iniciador de navegação à chave da 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, em seguida, navegar para um recurso conhecido por ser carregado pela página para inferir informações sensíveis usando o 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.
Rastreamento do bug #398784714 | Entrada do ChromeStatus.com | Especificação
Protected Audience: assistentes de conversão de texto
Os scripts de lances e pontuação da API Protected Audience que interagem com a WebAssembly
precisam converter dados do tipo string de forma eficiente em (e de) matrizes de bytes.
Por exemplo, para transmitir strings para dentro e fora da WebAssembly com o ArrayBuffer "memory". Isso
oferece duas funções independentes, protectedAudience.encodeUtf8
e
protectedAudience.decodeUtf8
, para executar essas tarefas de maneira muito mais eficiente do que em JavaScript.
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));
Entrada do ChromeStatus.com | Especificação
Regras de especulação: campo da tag
Isso permite que os desenvolvedores adicionem o campo de tag à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
.
Rastreamento do bug #381687257 | Entrada do ChromeStatus.com | Especificação
Atualizar 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 é unsigned long long
agora.
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 para 1. Isso está alinhado com o comportamento padrão do
elemento HTML <progress>
se o atributo max for omitido.
Entrada do ChromeStatus.com | Especificação
Privacidade e segurança
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.
Rastreamento do bug #40941424 | Entrada do ChromeStatus.com | Especificação
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, o Chrome
agora envia o idioma mais preferido
do usuário no cabeçalho Accept-Language.
Rastreamento do bug #1306905 | Entrada do ChromeStatus.com
Identidade
Atualizações da FedCM
Permite que a FedCM mostre vários provedores de identidade na mesma caixa de diálogo,
tendo todos os provedores na mesma chamada get()
. Isso
oferece aos desenvolvedores uma maneira conveniente de apresentar todos os provedores de identidade
compatíveis aos usuários.
O Chrome 136 também remove o suporte para 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.
Rastreamento do bug #1348262 | Entrada do ChromeStatus.com | Especificação
Criação condicional de 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.
Rastreamento do bug #377758786 | Entrada do ChromeStatus.com | Especificação
Imagens e mídia
AudioContext
Estado interrompido
Adiciona um estado "interrupted"
a AudioContextState
. Esse novo estado permite que o
User Agent pause a reprodução durante o acesso exclusivo de áudio (VoIP) ou quando a tampa de um
computador portátil está fechada.
Rastreamento do bug #374805121 | Entrada do ChromeStatus.com | Especificação
Controle de superfície capturado
Uma API da Web que permite que os aplicativos da Web:
- Encaminha eventos da roda para uma guia capturada.
- Ler e mudar o nível de zoom de uma guia capturada.
Bug de rastreamento #1466247 | Entrada do ChromeStatus.com | Especificação
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 por largura de banda de acordo com as resoluções física e lógica da superfície capturada.
Rastreamento do bug #383946052 | Entrada do ChromeStatus.com | Especificação
Compatibilidade com o codec H265 (HEVC) no WebRTC
Após essa mudança, o HEVC vai se juntar ao VP8, H.264, VP9 e AV1 como codecs compatíveis no WebRTC. O suporte será pesquisável usando a API MediaCapabilities.
Rastreamento do bug #391903235 | Entrada do ChromeStatus.com | Especificação
Atualizações de suporte ao codec H26x para o MediaRecorder
A API MediaRecorder do Chromium agora oferece suporte à codificação HEVC, introduzindo a string de codec hvc1.* e adicionando novos codecs (hev1.* e avc3.*) com 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 Chromium M130. Como continuação, foi adicionado 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 oferecem os recursos necessários.
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
e isPointInStroke
.
Rastreamento do bug #40572887 | Entrada do ChromeStatus.com | Especificação
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.
Rastreamento do bug #403172841 | Entrada do ChromeStatus.com | Especificação
Mudanças no navegador
Barras de rolagem fluentes
Esse recurso moderniza as barras de rolagem do Chromium (sobreposição e não sobreposição) no Windows e no Linux para se ajustar à linguagem de design Fluent do Windows 11.
As barras de rolagem Fluent sem sobreposição 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 Chromium para Linux sempre foi alinhado ao que é enviado no Windows. Como expor a ativação de sobreposição de barras de rolagem Fluent ainda está sendo decidida.
Rastreamento do bug #1292117 | Entrada do ChromeStatus.com
Testes de origem
API Audio Output Devices: setDefaultSinkId()
Esse recurso adiciona setDefaultSinkId()
a MediaDevices
, o que permite que o
frame de nível superior mude o dispositivo de saída de áudio padrão usado pelos subframes.
Teste de origem | Entrada do ChromeStatus.com | Especificação
Permitir que aplicativos da Web entendam os tempos de performance 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.
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.
Teste de origem | Rastreamento do bug #1413848 | Entrada do ChromeStatus.com | Especificação
Atualização da implementação de renderização de texto do Canvas
Essa não é uma mudança exposta na Web.
A implementação de CanvasRenderingContext2D
measureText()
, fillText()
e
strokeText()
mudou drasticamente. Isso pode afetar o desempenho. Por isso, queremos
executar um teste de origem para que aplicativos com uso intenso de tela possam testar a nova
implementação.
Teste de origem | Rastreamento do bug #389726691 | Entrada do ChromeStatus.com
Suspensões de uso e remoções
Remover HTMLFencedFrameElement.canLoadOpaqueURL()
O método canLoadOpaqueURL()
do HTMLFencedFrameElement
foi substituído por
navigator.canLoadAdAuctionFencedFrame()
em 2023, e a chamada dele resultou
em um aviso de descontinuação no console desde que apontou para a nova API. O método
foi removido do Chrome 136.