Publicado em 5 de março 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 do ChromeStatus.com. O Chrome 135 é Beta desde 5 de março 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
Nesta versão, adicionamos 13 novos recursos de CSS e interface.
Posicionamento de âncora com o deslocamento de rolagem lembrado
Adição de suporte ao conceito de deslocamento de rolagem
lembrado. Quando um
elemento posicionado tem uma âncora padrão e é conectado a essa âncora em uma
borda e contra o bloco de contenção original na outra borda, o deslocamento
será levado em consideração ao dimensionar o elemento. Isso
significa que você pode usar todo o espaço visível (usando position-area
) para o elemento
fixado quando o documento é rolado em um determinado deslocamento de rolagem. Para
evitar o layout (redimensionar o elemento) sempre que o documento é rolado, o
navegador usa o deslocamento de rolagem lembrado, em vez de sempre usar o
deslocamento de rolagem atual. O deslocamento de rolagem lembrado é atualizado em um ponto de
recalculo de âncora, que é a posição em que o elemento posicionado
é exibido inicialmente ou quando uma opção de posição diferente
(position-try-fallbacks
) é escolhida.
Inércia do CSS
Tornar um elemento inativo afeta se ele pode ser focado, editado, selecionado e
pesquisável pelo recurso Encontrar na página. Isso também afeta se ele está visível na
árvore de acessibilidade. A propriedade interactivity
especifica se um elemento
e seus descendentes de árvore plana (incluindo linhas de texto) são inertes ou não. A
propriedade interactivity
aceita um destes dois valores: auto
ou inert
.
Propriedades de transbordamento lógico
As propriedades CSS overflow-inline
e overflow-block
permitem definir o overflow
na direção inline e de bloco em relação ao modo de gravação. Em um modo de escrita
horizontal, overflow-inline
é mapeado para overflow-x
, enquanto em um modo de escrita
vertical, ele é mapeado para overflow-y
.
Funções relacionadas a sinais: abs()
e sign()
As funções relacionadas ao sinal abs()
e sign()
calculam várias funções relacionadas ao sinal do argumento.
A propriedade dynamic-range-limit
Permite que uma página limite o brilho máximo do conteúdo HDR.
A função shape()
A função shape()
permite formas responsivas de forma livre na propriedade
clip-path
. Ele permite definir uma série de comandos, equivalentes aos comandos em
path()
. No entanto, os comandos aceitam unidades responsivas (por exemplo, %
ou
vw
), bem como qualquer valor de CSS, como propriedades personalizadas.
O pseudoelemento ::column
Um pseudoelemento ::column
, que permite aplicar um conjunto limitado de estilos aos
fragmentos gerados. Especificamente, isso é limitado a estilos que não
afetam o layout e, portanto, podem ser aplicados após o layout.
Pseudoelementos ::scroll-button()
Permite a criação de botões de rolagem interativos como pseudoelementos. Por exemplo:
.scroller {
overflow: auto;
}
.scroller::scroll-button(inline-start) {
content: "<";
}
.scroller::scroll-button(inline-end) {
content: ">";
}
Eles precisam ser focados, comportando-se como um botão (incluindo os estilos do UA).
Quando ativado, um rolamento precisa ser realizado na direção por uma certa quantidade.
Quando não for possível rolar nessa direção, eles serão desativados
(e estilizados com :disabled
). Caso contrário, eles serão ativados (e estilizados com
:enabled
). O seletor permite definir botões em quatro direções lógicas:
block-start
, block-end
, inline-start
, inline-end
; além de quatro
direções físicas: up
, down
, left
, right
.
::scroll-marker
e ::scroll-marker-group
Adiciona ::scroll-marker
e ::scroll-marker-group
para contêineres de rolagem.
Esses pseudoelementos permitem criar um conjunto de marcadores com foco para todos os
itens associados no contêiner de rolagem.
Estilo de pseudoelementos aninhados
Permite o estilo de pseudoelementos aninhados dentro de outros pseudoelementos.
Até agora, o suporte foi definido para: ::before::marker
e ::after::marker
, com
::column::scroll-marker
sendo aceito no futuro.
Histórico de links de particionamento :visited
Para eliminar vazamentos do histórico de navegação do usuário, os elementos âncora são estilizados como
:visited
somente se tiverem sido clicados anteriormente a partir desse site de nível superior e da origem
do frame. Ao estilizar apenas os links que já foram clicados neste site e
frame, os muitos ataques de canal lateral que foram desenvolvidos para coletar
informações de estilização de links :visited
estão obsoletos, porque não fornecem mais
sites com novas informações sobre os usuários.
Há uma exceção para links diretos, em que os links para as páginas de um site podem ser
estilizados como :visited
, mesmo que não tenham sido clicados nessa exata
origem 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.
Notações funcionais de progresso da interpolação: funções *progress()
do CSS
As notações funcionais progress()
, media-progress()
e container-progress()
representam a distância proporcional de um valor específico (o valor
do progresso) de um valor (o valor inicial do progresso) para outro valor (o valor final do
progresso). Elas permitem exibir uma proporção de progresso de funções matemáticas, recursos
de mídia e recursos de contêiner, respectivamente.
Variáveis safe-area-max-inset-
*
Além das variáveis de ambiente safe-area-inset
, o Chrome agora também
oferece suporte a variantes max-area-safe-inset-
* dessas variáveis. Ao contrário dos engastes
dinâmicos, os engastes máximos não mudam e representam o engaste máximo possível
da área segura.
Esses valores são necessários para criar experiências de Web de ponta a ponta com bom desempenho.
APIs Web
Adicionar suporte a MediaStreamTrack
à API Web Speech
Foi adicionado suporte a MediaStreamTrack
à API Web Speech. A API Web Speech é uma
API padrão da Web que permite que os desenvolvedores incorporem o reconhecimento de voz e
a síntese às páginas da Web. No momento, a API Web Speech usa o microfone padrão
do usuário como entrada de áudio. O suporte à MediaStreamTrack permite que os sites
usem a API Web Speech para legendar outras fontes de áudio, incluindo faixas de áudio
remotas.
Particionamento de URL de blobs: busca e navegação
Como continuação do particionamento de armazenamento, esse recurso 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.
CSP require-sri-for
para scripts
A diretiva require-sri-for
permite afirmar que todos
os recursos de um determinado tipo precisam ser verificados quanto à integridade. Se um recurso desse
tipo for carregado sem metadados de integridade, a tentativa
vai falhar e acionar um relatório de violação do CSP. Essa intent abrange o valor "script"
da diretiva.
Criar um cliente de worker de serviço e herdar o controlador de worker de serviço para o iframe srcdoc
No momento, os documentos de contexto do Srcdoc não são clientes de service worker e não são
abrangidos pelo service worker da página mãe. Isso resulta em algumas discrepâncias.
Por exemplo, o Resource Timing informa os URLs que esses documentos carregam, mas
o worker de serviço não os intercepta. O objetivo é corrigir as discrepâncias
criando clientes de worker de serviço para iframes srcdoc
e fazendo com que eles herdem o
controlador de worker de serviço da página mãe.
Envio de 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.
Float16Array
Adiciona a matriz digitada Float16Array
. Os valores numéricos são arredondados para IEEE fp16 ao
gravar em instâncias Float16Array
.
Incorporação do 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 reduzir 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 que é carregado pela página
para inferir informações sensíveis pelo 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.
Prevenção de rastreamento de HSTS
Mitiga o rastreamento de usuários por terceiros pelo cache HSTS.
Esse recurso só permite upgrades HSTS para navegações de nível superior e bloqueia upgrades HSTS para solicitações de sub-recursos. Isso torna inviável que sites de terceiros usem o cache HSTS para rastrear usuários na Web.
Comandos de invocação: os atributos command
e commandfor
Os atributos command
e commandfor
em elementos <button>
permitem atribuir
comportamento a botões de maneira mais acessível e declarativa, reduzindo
bugs e simplificando a quantidade de JavaScript necessária para interatividade. Botões
com atributos commandfor
e command
, quando clicados, tocados ou
acionados com pressionamento de tecla, enviam um CommandEvent
no elemento referenciado por
commandfor
, com alguns comportamentos padrão, como abrir caixas de diálogo e pop-ups.
Vincular rel="facilitated-payment"
para oferecer suporte a pagamentos push
O suporte para <link rel="facilitated-payment" href="...">
foi adicionado como uma sugestão de que
o navegador precisa notificar os clientes de pagamento registrados sobre um pagamento push
pendente.
A propriedade sourceElement
NavigateEvent
Quando uma navegação é iniciada por um elemento (ou seja, um clique em um link ou um envio de
formulário), a propriedade sourceElement
no NavigateEvent
retorna o
elemento inicializador.
Mudança no nome do motivo da API NotRestoredReasons
A API NotRestoredReasons
está mudando alguns dos textos de motivo para se alinhar aos
nomes padronizados. Os desenvolvedores que monitoram esses motivos podem notar uma mudança
nos textos de motivo.
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 para um serviço de terceiros para processamento. Os sites podem consultar a disponibilidade do reconhecimento de fala no dispositivo para idiomas específicos, solicitar que os usuários instalem os recursos necessários para o reconhecimento de fala no dispositivo e escolher entre reconhecimento de fala no dispositivo ou baseado na nuvem conforme necessário.
O URL do cliente do service worker ignora mudanças de history.pushState
Modifica a propriedade Client.url
do worker de serviço para ignorar mudanças no URL do documento
usando history.pushState()
e outras APIs de histórico semelhantes. A propriedade Client.url
é destinada a ser o URL de criação do documento HTML, que ignora
essas mudanças.
Compatibilidade com os atributos rel
e relList
para SVGAElement
A interface SVGAElement no SVG 2.0 permite a manipulação de elementos <a>
semelhantes aos elementos de âncora HTML. O suporte aos atributos rel
e relList
melhora a segurança e a privacidade para os desenvolvedores. Esse alinhamento com elementos de âncora
HTML garante consistência e facilidade de uso em todas as tecnologias da Web.
Carimbos de data/hora para frames codificados por RTC
Esse recurso consiste em expor à Web alguns carimbos de data/hora presentes em frames codificados do WebRTC transmitidos por uma RTCPeerConnection. Os carimbos de data/hora em questão são:
- Carimbo de data/hora da captura: o carimbo de data/hora em que um frame foi capturado originalmente
- Carimbo de data/hora de recebimento: o carimbo de data/hora em que um frame foi recebido
Atualize ProgressEvent
para usar o tipo duplo para "carregado" 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 para 1. Isso está alinhado com o comportamento padrão do elemento HTML <progress>
se o atributo max for omitido.
A API fetchLater
A API fetchLater()
é uma API JavaScript para solicitar uma busca adiada,
especialmente útil para beacons mais confiáveis no final da vida útil de uma página.
Quando chamada em um documento, uma solicitação adiada é enfileirada pelo navegador no
estado PENDENTE e será invocada pela primeira das seguintes condições:
O documento é destruído. Após um período especificado pelo usuário. Por motivos de privacidade, todas as solicitações pendentes serão descartadas quando o documento entrar no bfcache, não importa quanto tempo restar. O navegador decide que é hora de enviar.
A API retorna um FetchLaterResult
que contém um campo booleano activated
que pode ser atualizado para informar se a solicitação adiada foi enviada ou
não. Se o envio for bem-sucedido, toda a resposta será ignorada pelo navegador,
incluindo o corpo e os cabeçalhos.
Do ponto de vista do usuário da API, o horário exato de envio é desconhecido.
Novos testes de origem
No Chrome 135, você pode ativar os seguintes novos testes de origem.
Invocadores de interesse
Esse recurso adiciona um atributo interesttarget
aos elementos <button>
e
<a>
. O atributo interesttarget
adiciona comportamentos de "interesse" ao
elemento. Assim, quando o usuário "demonstra interesse" no elemento, as ações são
acionadas no elemento de destino. As ações podem incluir coisas como mostrar um
popover. O agente do usuário vai detectar quando o usuário "mostrar interesse" no
elemento, usando métodos como passar o cursor sobre o elemento com um mouse, pressionar
atalhos de teclado especiais ou tocar e pressionar o elemento em telas sensíveis ao toque.
Quando o interesse é mostrado ou perdido, um InterestEvent
é acionado no destino,
que tem ações padrão no caso de pop-ups, mostrando e ocultando o
pop-up.
Integridade com base em assinatura
Esse recurso oferece aos desenvolvedores da Web um mecanismo para verificar a procedência dos recursos de que dependem, criando uma base técnica de confiança nas dependências de um site. Resumindo: os servidores podem assinar respostas com um par de chaves Ed25519, e os desenvolvedores da Web podem exigir que o agente do usuário verifique a assinatura usando uma chave pública específica. Isso oferece uma adição útil às verificações baseadas em URL oferecidas pela Política de segurança de conteúdo, por um lado, e às verificações baseadas em conteúdo da Integridade de subrecurso, por outro.
Suspensões de uso e remoções
Esta versão do Chrome apresenta as descontinuações e remoções listadas abaixo. Acesse o ChromeStatus.com para conferir listas de descontinuações planejadas, descontinuações atuais e remoções anteriores.
Esta versão do Chrome descontinua um recurso.
Descontinuação de getters de informações de localidade internacional
A API Intl Locale Info é uma proposta de 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. O Chrome lançou uma
implementação no Chrome 99, mas a proposta mudou para mover vários
getters para funções. Precisamos remover os getters descontinuados e reiniciar as
funções renomeadas.
Esta versão do Chrome remove três recursos.
O método navigator.xr.supportsSession
descontinuado foi removido
navigator.xr.supportsSession
foi substituído na especificação do WebXR pelo
método navigator.xr.isSessionSupported
em setembro de 2019 após receber
feedback sobre a forma da API da TAG. Desde então, ela foi marcada como descontinuada no
Chrome, produzindo um aviso do console que redireciona os desenvolvedores para a
API atualizada. O uso da chamada é muito baixo, e todos os principais frameworks usados
para criar conteúdo do WebXR foram atualizados para usar a
chamada mais recente.
Remover a propriedade canTransition
NavigateEvent
No Chrome 108, o método transitionWhile()
e a propriedade canTransition
do NavigateEvent
foram substituídos pelo novo método intercept()
e pela propriedade canIntercept
. Naquela época, o método transitionWhile()
foi
removido. No entanto, esquecemos de remover a propriedade canTransition
. Em vez disso, a deixamos como um alias para canIntercept
. No Chrome 135, corrigimos esse problema
e removemos canTransition
. Todos os usos de canTransition
podem ser substituídos por
canIntercept
, sem mudança no comportamento.
O limite da WebGPU maxInterStageShaderComponents foi removido
O limite de maxInterStageShaderComponents
está sendo removido devido a uma combinação
de fatores:
- Redundância com
maxInterStageShaderVariables
: esse limite já tem uma finalidade semelhante, controlando a quantidade de dados transmitidos entre os estágios do sombreador. - Discrepâncias menores: embora haja pequenas diferenças na forma como os dois
limites são calculados, essas diferenças são pequenas e podem ser gerenciadas
de forma eficaz no
maxInterStageShaderVariables limit
. - Simplificação: a remoção de
maxInterStageShaderComponents
simplifica a interface do sombreador e reduz a complexidade para os desenvolvedores. Em vez de gerenciar dois limites separados (que se aplicam simultaneamente, mas com diferenças sutis), eles podem se concentrar nomaxInterStageShaderVariables
mais abrangente e com nome mais apropriado.