Chrome 135

Data de lançamento estável:1º 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 135 para Android, ChromeOS, Linux, macOS e Windows.

HTML e DOM

Comandos do invocador: os atributos command e commandfor

Os atributos command e commandfor nos elementos <button> permitem atribuir comportamento aos botões de maneira mais acessível e declarativa.

Rastreamento do bug #1490919 | Entrada do ChromeStatus.com | Especificação

Adiciona suporte a <link rel="facilitated-payment" href="..."> como uma sugestão de que o navegador deve notificar os clientes de pagamento registrados sobre um pagamento push pendente.

Rastreamento do bug #1477049 | Entrada do ChromeStatus.com

CSS

Pseudoelemento ::column para carrosséis

Um pseudoelemento ::column, que permite aplicar um conjunto limitado de estilos aos fragmentos gerados. Especificamente, isso seria limitado a estilos que não afetam o layout e, portanto, podem ser aplicados após o layout.

Entrada do ChromeStatus.com

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, atuando 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, bem como quatro direções físicas: up, down, left, right.

Rastreamento do bug #370067113 | Entrada do ChromeStatus.com | Especificação

::scroll-marker e ::scroll-marker-group

Adiciona os pseudoelementos ::scroll-marker e ::scroll-marker-group para contêineres de rolagem. Eles permitem criar um conjunto de marcadores com foco para todos os itens associados no contêiner de rolagem.

Rastreamento do bug #332396355 | Entrada do ChromeStatus.com | Especificação

Inércia do CSS: a propriedade interactivity

A propriedade interactivity especifica se um elemento e os descendentes da árvore plana (incluindo linhas de texto) são inertes ou não.

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.

Entrada do ChromeStatus.com | Especificação

Estouro lógico do CSS

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.

Rastreamento do bug #41489999 | Entrada do ChromeStatus.com | Especificação

Deslocamento de rolagem lembrado pelo posicionamento de âncora do CSS

Adicionamos suporte ao conceito de compensação de rolagem gravada.

Quando um elemento posicionado tem uma âncora padrão e é vinculado a essa âncora em uma borda e ao bloco de contenção original na outra borda, o deslocamento de rolagem é levado em consideração ao dimensionar o elemento. Dessa forma, é possível usar todo o espaço visível (usando position-area) para o elemento ancorado quando o documento é rolado em um determinado deslocamento de rolagem.

Para evitar o layout (redimensionar o elemento) sempre que o documento for rolado (o que é um comportamento indesejado e ruim para a performance), será usado um chamado "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 é:

  • Quando o elemento posicionado é mostrado inicialmente.
  • Quando uma opção de posição diferente (position-try-fallbacks) é escolhida.

Bug de rastreamento #373874012 | Entrada do ChromeStatus.com | Especificação

Função shape() do CSS

A função shape() permite formas responsivas de forma livre em clip-path.

É possível definir uma série de verbos, aproximadamente equivalentes aos verbos em path(), mas em que os verbos aceitam unidades responsivas (como % ou vw), bem como qualquer valor CSS, como propriedades personalizadas.

Rastreamento do bug #40829059 | Entrada do ChromeStatus.com | Especificação

Variáveis safe-area-max-inset-*

Esse recurso adiciona variáveis max-area-safe-inset-* que não mudam e representam o máximo possível de área segura.

O caso de uso que isso resolve é evitar a necessidade de refazer o layout da página em casos em que o rodapé (por exemplo) pode simplesmente deslizar à medida que o valor de inserção da área segura aumenta, em vez de mudar de tamanho.

Rastreamento do bug #391621941 | Entrada do ChromeStatus.com | Especificação

Estilo de pseudoelementos aninhados

Permite estilizar pseudoelementos aninhados dentro de outros pseudoelementos. Até o momento, o suporte está definido para:

  • ::before::marker
  • ::after::marker

Com o suporte para ::column::scroll-marker no futuro.

Rastreamento do bug #373478544 | Entrada do ChromeStatus.com | Especificação

Áudio e vídeo

Adicionar suporte para MediaStreamTrack à API Web Speech

Adicionamos suporte ao MediaStreamTrack à API Web Speech.

A API Web Speech é uma API padrão da Web que permite que os desenvolvedores incorporem o reconhecimento e a síntese de fala à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.

Entrada do ChromeStatus.com | Especificação

APIs Web

Criar um cliente de worker de serviço e herdar o controlador do 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 cobertos 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. Essa mudança tem como objetivo corrigir as discrepâncias criando clientes de service worker para iframes de srcdoc e fazendo com que eles herdem o controlador de service worker da página mãe.

Rastreamento do bug #41411856 | Entrada do ChromeStatus.com | Especificação

Reflexão de elemento

Esse recurso permite que os atributos de relacionamento ARIA sejam refletidos no IDL como referências de elementos, em vez de DOMStrings.

Isso implementa os atributos IDL na interface ARIAMixin com um tipo de elemento ou FrozenArray<Element>, com exceção de ariaOwnsElements.

Rastreamento do bug #981423 | Entrada do ChromeStatus.com | Especificação

Frames cercados: suporte automático de dados de beacons entre origens

Se forem carregados por uma API como a Protected Audience ou o Shared Storage, os frames cercados ou os iframes de URN podem enviar beacons de relatórios automaticamente se algum evento ocorrer. Atualmente, apenas beacons de navegação de nível superior são aceitos. Esse recurso foi atualizado anteriormente para permitir que documentos entre origens diferentes carregados na árvore do frame enclausurado raiz enviassem beacons automáticos, se permitido, mas ainda mantinha a restrição de que apenas frames que são da mesma origem da origem carregada pela API podiam definir os dados que seriam enviados como parte do beacon. Esse recurso amplia essa funcionalidade para permitir que o documento entre origens defina os dados que serão usados no beacon automático.

Para permitir isso e preservar a privacidade, o documento raiz do frame protegido e o documento de subframe entre origens diferentes precisam ser ativados explicitamente. Essa é a mesma forma de ativação de outros recursos de FFAR entre origens. Especificamente, o frame raiz precisa ativar o cabeçalho Allow-Fenced-Frame-Automatic-Beacons, e o frame filho de origem cruzada que define os dados precisa ativar o parâmetro crossOriginExposed na chamada para setReportEvent().

Entrada do ChromeStatus.com | Especificação

Float16Array

Adiciona a matriz do tipo Float16Array. Os valores numéricos são arredondados para IEEE fp16 ao gravar em instâncias Float16Array.

Rastreamento do bug #42203953 | Entrada do ChromeStatus.com | Especificação

Prevenção de rastreamento do HSTS

Reduz o rastreamento de usuários por terceiros usando o cache HSTS.

Esse recurso só permite upgrades HSTS para navegações de nível superior e bloqueia upgrades HSTS para solicitações de subrecursos. Isso torna inviável o uso do cache HSTS por sites de terceiros para rastrear usuários na Web.

Rastreamento do bug 40725781 | Entrada do ChromeStatus.com

Quando uma navegação é iniciada por um elemento (por exemplo, com um clique em um link ou um envio de formulário), a propriedade sourceElement no NavigateEvent será o elemento inicial.

Rastreamento do bug #40281924 | Entrada do ChromeStatus.com | Especificação

Mudança no nome do motivo da API NotRestoredReasons

A API NotRestoredReasons está mudando alguns textos de motivo para se alinhar aos nomes padronizados. Se você estiver monitorando esses motivos, poderá notar uma mudança nos textos.

Rastreamento do bug #331754704 | Entrada do ChromeStatus.com | Especificação

API observável

Os observáveis são um paradigma de programação reativa conhecido para processar um fluxo assíncrono de eventos baseados em push. Eles podem ser considerados como promessas, mas para vários eventos, e têm como objetivo fazer o que as promessas faziam para callbacks e aninhamento. Ou seja, eles permitem o processamento ergonômico de eventos fornecendo um objeto Observable que representa o fluxo assíncrono de eventos.

É possível se inscrever no objeto para receber eventos conforme eles chegam e chamar qualquer um dos operadores ou combinatores dele para descrever de forma declarativa o fluxo de transformações pelos quais os eventos passam. Isso contrasta com a versão imperativa, que geralmente exige uma aninhação complicada com elementos como addEventListener().

Rastreamento do bug #1485981 | Entrada do ChromeStatus.com | Especificação

Remoção da limitação de setInterval(...) para >= 1 ms

Antes do Chrome 135, setInterval com um valor menor que 1 era ajustado para 1. Essa restrição foi removida do Chrome 135.

  • Antes: setInterval(..., 0) = 1ms delay.
  • Depois: setInterval(..., 0) = 0ms delay.

Rastreamento do bug #41380458 | Entrada do ChromeStatus.com

O URL do cliente do service worker ignora mudanças de history.pushState()

A propriedade Client.url do worker do serviço foi modificada para ignorar mudanças no URL do documento com 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.

Rastreamento do bug #41337436 | Entrada do ChromeStatus.com | Especificação

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 aumenta a segurança e a privacidade para os desenvolvedores.

Esse alinhamento com os elementos de âncora HTML garante a consistência e a facilidade de uso em todas as tecnologias da Web.

Rastreamento do bug #40589293 | Entrada do ChromeStatus.com | Especificação

Marcações de tempo para frames codificados em RTC

Esse recurso consiste em expor à Web alguns carimbos de data/hora presentes em frames codificados do WebRTC transmitidos usando 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.

Rastreamento do bug #391114797 | Entrada do ChromeStatus.com | Especificação

Atualizar cabeçalhos, corpo e política de redirecionamento do referrer da solicitação HTTP no redirecionamento CORS

Remova os cabeçalhos e o corpo do corpo da solicitação HTTP no redirecionamento do CORS se o método tiver mudado e atualize a política de referenciador. Essas atualizações de solicitação estão alinhadas com a especificação de busca e correspondem ao comportamento implementado pelo Firefox e Safari para melhorar a compatibilidade.

Rastreamento do bug #40686262 | Entrada do ChromeStatus.com | Especificação

API fetchLater

fetchLater() é uma API JavaScript para solicitar uma busca adiada. Quando chamada em um documento, uma solicitação adiada é colocada na fila do navegador no estado PENDING e é 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 excluídas quando o documento entrar no bfcache, não importa quanto tempo resta.
  • O navegador decide que é hora de enviar.

A API retorna um FetchLaterResult que contém um campo booleano "ativado" 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. Nada precisa ser processado ou atualizado, porque a página pode ter sido excluída.

Do ponto de vista do usuário da API, o horário exato de envio é desconhecido.

Rastreamento do bug #1465781 | Entrada do ChromeStatus.com | Especificação

API highlightsFromPoint

A API highlightsFromPoint permite que os desenvolvedores interajam com destaques personalizados detectando quais destaques existem em um ponto específico de um documento. Essa interatividade é valiosa para recursos da Web complexos em que vários destaques podem se sobrepor ou existir no DOM sombra. Ao fornecer uma detecção precisa de destaques com base em pontos, a API permite que os desenvolvedores gerenciem interações dinâmicas com destaques personalizados de maneira mais eficaz, como responder a eventos de cliques ou passagem do cursor do usuário em regiões destacadas para acionar dicas de ferramentas, menus de contexto ou outros recursos interativos.

Rastreamento do bug #365046212 | Entrada do ChromeStatus.com | Especificação

Testes de origem

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.

Teste de origem | Entrada do ChromeStatus.com | Especificação

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 pop-up. O agente do usuário vai detectar quando o usuário "mostrar interesse" no elemento, como ao passar o cursor sobre o elemento com um mouse, pressionar teclas de atalho especiais no teclado 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: mostrar e ocultar o pop-up.

Teste de origem | Rastreamento de bugs #326681249 | Entrada do ChromeStatus.com | Especificação

Integridade com base em assinaturas

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.

Teste de origem | Rastreamento de bugs #375224898 | Entrada do ChromeStatus.com | Especificação

Regras de especulação: campo target_hint

Isso estende a sintaxe das regras de especulação para permitir que os desenvolvedores especifiquem o campo target_hint.

Esse campo fornece uma dica para indicar um destino navegável em que uma página pré-renderizada será ativada. Por exemplo, quando _blank é especificado como uma dica, uma página pré-renderizada pode ser ativada para uma abertura navegável por window.open(). O campo não tem efeito no pré-carregamento.

A especificação permite que esse campo aceite qualquer string válida como nome de segmentação navegável ou palavra-chave como valor, mas esse lançamento só aceita uma das strings "_self" ou "_blank". Se a dica não for especificada, ela será tratada como se "_self" fosse especificado.

Teste de origem | Bug de rastreamento #40234240 | Entrada do ChromeStatus.com | Especificação

Suspensões de uso e remoções

O método navigator.xr.supportsSession foi removido

O método 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, ele foi marcado como descontinuado no Chromium, produzindo um aviso no 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.

Entrada do ChromeStatus.com | Especificação

Remover o limite da WebGPU maxInterStageShaderComponents

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 dentro do limite de maxInterStageShaderVariables.
  • 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 no maxInterStageShaderVariables mais abrangente e com nome mais adequado.

Rastreamento do bug #364338810 | Entrada do ChromeStatus.com | Especificação