Publicado em: 6 de agosto 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 140 está na versão Beta desde 6 de agosto de 2025. Faça o download da versão mais recente no site oficial do Chrome para computador ou na Google Play Store para Android.
CSS e interface
Aritmética tipada do CSS
A aritmética tipada permite escrever expressões em CSS, como calc(10em / 1px)
ou calc(20% / 0.5em * 1px)
. Isso é útil, por exemplo, na tipografia, porque permite converter um valor digitado em um sem tipo e reutilizá-lo para propriedades que aceitam números. Outro caso de uso é multiplicar o valor sem unidade por outro tipo. Por exemplo, é possível converter de pixels para graus.
A propriedade scroll-target-group
A propriedade scroll-target-group
especifica se o elemento é um contêiner de grupo de marcadores de rolagem. Ele aceita um dos seguintes valores:
- "none": o elemento não estabelece um contêiner de grupo de marcadores de rolagem.
- "auto": o elemento estabelece um contêiner de grupo de marcadores de rolagem que forma um grupo de marcadores de rolagem com todos os elementos de marcador de rolagem para os quais esse é o contêiner de grupo de marcadores de rolagem ancestral mais próximo.
Ao estabelecer um contêiner de grupo de marcadores de rolagem, qualquer elemento HTML de âncora com um identificador de fragmento dentro desse contêiner pode ser o equivalente HTML de pseudoelementos ::scroll-marker
. O elemento de âncora cujo destino de rolagem está
atualmente na visualização pode ser estilizado usando a pseudoclasse :target-current
.
Ativar counter()
e counters()
no texto alternativo da propriedade content
Esse recurso adiciona a capacidade de usar counter()
e counters()
no texto alternativo da propriedade
content
. Isso fornece informações mais significativas para melhorar a acessibilidade.
Pseudoelementos de transição de visualização herdam mais propriedades de animação
A pseudárvore de transição de visualização agora herda várias propriedades de animação:
animation-delay
animation-timing-function
animation-iteration-count
animation-direction
animation-play-state
Ativar transições de visualização aninhadas
Esse recurso permite que as transições de visualização gerem uma árvore de pseudoelementos aninhada em vez de uma plana. Isso permite que a transição de visualização apareça mais alinhada aos elementos originais e à intenção visual. Ele permite recorte, transformações 3D aninhadas e aplicação adequada de efeitos como opacidade, mascaramento e filtros.
Propagar a janela de visualização overscroll-behavior
da raiz
Essa mudança propaga overscroll-behavior
da raiz em vez do corpo. O grupo de trabalho do CSS decidiu não propagar propriedades do <body>
para a janela de visualização. Em vez disso, as propriedades da janela de visualização são propagadas do elemento raiz (<html>
). Assim, overscroll-behavior
precisa ser propagado do elemento raiz. No entanto, o Chrome tem um problema antigo: ele propaga
overscroll-behavior
do <body>
em vez da raiz. Esse comportamento não é
interoperável com outros navegadores. Essa mudança faz com que o Chrome obedeça à especificação e se torne interoperável com outras implementações.
Opção de contêiner ScrollIntoView
A opção de contêiner ScrollIntoViewOptions
permite que os desenvolvedores realizem uma
operação scrollIntoView
que rola apenas o contêiner de rolagem ancestral mais próximo. Por exemplo, o snippet a seguir só rola o contêiner de rolagem de target
para mostrar target
, mas não rola todos os contêineres de rolagem até a janela de visualização:
target.scrollIntoView({container: 'nearest'});
Adicione a propriedade CSS caret-animation
O Chromium é compatível com a animação da propriedade caret-color
. No entanto, quando animado, o comportamento padrão de
piscar do cursor interfere na animação.
A propriedade CSS caret-animation
tem dois valores possíveis: auto
e manual
.
auto
significa o padrão do navegador (piscando), e manual
significa que o desenvolvedor controla a animação do cursor. Além disso, os usuários
que se incomodam ou têm reações adversas a visuais piscando ou intermitentes
podem desativar o recurso com uma folha de estilo do usuário.
A API highlightsFromPoint
A API highlightsFromPoint
permite que os desenvolvedores interajam com destaques personalizados. Ele detecta 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 shadow. Ao fornecer uma detecção precisa de destaque baseada em pontos, a API permite que os desenvolvedores gerenciem interações dinâmicas com destaques personalizados de maneira mais eficaz. Por exemplo, os desenvolvedores podem responder a cliques ou eventos de passar o cursor do usuário em regiões destacadas para acionar dicas personalizadas, menus contextuais ou outros recursos interativos.
Mudar o tempo da promessa de transição de visualização concluída
O tempo de promessa concluída atual acontece nas etapas do ciclo de vida de renderização. Isso significa que o código executado como resultado da resolução da promessa acontece depois que o frame visual que remove a transição de visualização é produzido. Isso pode causar um tremor no final da animação se o script mover estilos para preservar um estado visualmente semelhante. Essa mudança resolve o problema movendo as etapas de limpeza do ViewTransition para serem executadas de forma assíncrona após a conclusão do ciclo de vida.
Adicionar o atributo de origem ToggleEvent
O atributo source
de um ToggleEvent
contém o elemento que acionou
o disparo do ToggleEvent
, se aplicável. Por exemplo, se um usuário clicar em um elemento <button>
com o atributo popovertarget
ou commandfor
definido para abrir um popover,
o ToggleEvent
disparado no popover terá o atributo de origem definido como o <button>
de invocação.
Impedir que o SVG foreignObject
corrompa a tela para URLs de blob
Todos os navegadores oferecem suporte há muito tempo ao uso de um elemento <img>
com uma origem SVG em uma operação de tela HTML drawImage
. No entanto, o comportamento de corrupção de tela varia entre as plataformas. Todos os navegadores corrompem o canvas quando
a origem SVG inclui uma tag foreignObject
e é referenciada com um URI HTTP. Quando o mesmo SVG é referenciado por um URI de dados, todos os navegadores não corrompem a tela.
No entanto, quando um URI de blob é usado, o Chromium (antes
dessa mudança) e o WebKit contaminam a tela, mas o Gecko não. Quando esse recurso
for lançado, o comportamento do Chromium será igual ao do Gecko, permitindo que uma variedade maior de
conteúdo SVG seja usada em chamadas de tela drawImage
sem contaminação.
Suporte ao descritor font-variation-settings
em @font-face rule
O CSS permite que os desenvolvedores ajustem o peso, a largura, a inclinação e outros eixos de uma fonte
usando a propriedade font-variation-settings
em elementos individuais. No entanto, os navegadores baseados no Chromium não oferecem suporte a essa propriedade em declarações @font-face
. Esse recurso é compatível com a sintaxe baseada em strings para
font-variation-settings
, conforme definido em CSS Fonts Level 4. Tags de recursos inválidas ou
não reconhecidas são ignoradas por especificação. Não há suporte para formulários binários ou não padrão. As fontes variáveis estão sendo mais adotadas para desempenho e flexibilidade tipográfica. Adicionar suporte a esse
descritor no Chromium melhora o controle, reduz a repetição e oferece suporte a uma
abordagem mais escalonável e moderna para a tipografia da Web.
APIs Web
Converter Uint8Array
de e para base64 e hexadecimal
A Base64 é uma maneira comum de representar dados binários arbitrários como ASCII. O JavaScript
tem Uint8Arrays
para dados binários. No entanto, ele não tem um mecanismo integrado para codificar esses dados como base64 ou para usar dados base64 e produzir um Uint8Array
correspondente. Esse recurso adiciona a capacidade e os métodos para converter
entre strings hexadecimais e Uint8Arrays
.
Usar a opção ReadableStreamBYOBReader
min
Esse recurso apresenta uma opção min
ao método ReadableStreamBYOBReader.read(view)
atual. O método já aceita um
ArrayBufferView
em que lê dados, mas atualmente não garante quantos
elementos são gravados antes da leitura ser concluída. Ao especificar um valor min
, você pode exigir que o fluxo aguarde até que pelo menos esse número de elementos esteja disponível antes de resolver a leitura. Isso melhora o comportamento atual, em que as leituras podem ser resolvidas com menos elementos do que a visualização pode conter.
Prefixo de cookie HTTP
Em alguns casos, é importante distinguir no lado do servidor entre
cookies definidos pelo servidor e aqueles definidos pelo cliente. Um desses casos envolve cookies normalmente sempre definidos pelo servidor. No entanto, um código inesperado (como um exploit XSS, uma extensão maliciosa ou um commit de um
desenvolvedor confuso) pode defini-los no cliente. Essa proposta adiciona um
indicador que permite aos servidores fazer essa distinção. Mais especificamente, ele
define os prefixos __Http
e __HostHttp
, que garantem que um cookie
não seja definido no lado do cliente usando script.
Restrições de acesso à rede local
O Chrome 140 restringe a capacidade de fazer solicitações para a rede local do usuário, exigindo uma solicitação de permissão. Uma solicitação de rede local é qualquer solicitação de um site público a um endereço IP local ou loopback, ou de um site local (como uma intranet) a loopback. Restringir a capacidade dos sites de realizar essas solicitações por trás de uma permissão reduz o risco de ataques de falsificação de solicitação entre sites contra dispositivos de rede local, como roteadores. Além disso, ela reduz a capacidade dos sites de usar essas solicitações para criar uma impressão digital da rede local do usuário. Essa permissão é restrita a contextos seguros. Se concedida, a permissão também relaxa o bloqueio de conteúdo misto para solicitações de rede local, já que muitos dispositivos locais não podem obter certificados TLS confiáveis publicamente por vários motivos.
Saiba mais em Nova solicitação de permissão para acesso à rede local.
Permitir que scripts SharedWorker herdem o controlador de URLs de script de blob
A especificação afirma que os workers precisam herdar os controladores do URL do blob. No entanto, o código atual permite que apenas DedicatedWorkers herdem o
controlador. SharedWorkers não o herdam. Isso corrige o comportamento do Chrome para se alinhar à especificação. A política corporativa SharedWorkerBlobURLFixEnabled
controla esse recurso.
Adicionar ServiceWorkerStaticRouterTimingInfo
Esse recurso adiciona informações de tempo para a API de roteamento estático do ServiceWorker, exposta na API Navigation Timing e na API Resource Timing para uso do desenvolvedor. O ServiceWorker fornece informações de tempo para marcar determinados pontos no tempo.
Esse recurso adiciona duas informações de tempo relevantes para a API Static Routing:
RouterEvaluationStart
: tempo para começar a corresponder uma solicitação a regras de roteador registradas.CacheLookupStart
: hora de começar a pesquisar o armazenamento em cache se a origem for"cache"
.
Além disso, esse recurso adiciona duas informações de origem do roteador: a origem correspondente e a origem final.
Ativar a criação condicional de autenticação da Web no Android (não disponível)
Apps isolados da Web
Apresentar a API Controlled Frame
Esse recurso adiciona uma API Controlled Frame disponível apenas para Apps Isolados da Web (AIWs). Assim como APIs com nomes semelhantes em outras plataformas, o Controlled Frame permite incorporar todo o conteúdo, mesmo de terceiros, que não pode ser incorporado em <iframe>
.
O Controlled Frame também permite controlar conteúdo incorporado com uma coleção de
métodos e eventos da API. Para mais informações sobre apps da Web isolados, consulte o explicador de apps da Web isolados.
Novos testes de origem
No Chrome 140, você pode ativar os seguintes novos testes de origem.
Adicionar o evento clipboardchange
O evento clipboardchange
é disparado sempre que um web app ou qualquer outro aplicativo do sistema muda o conteúdo da área de transferência do sistema. Isso permite que
apps da Web, como clientes de área de trabalho remota, mantenham as áreas de transferência sincronizadas com
a área de transferência do sistema. Ela oferece uma alternativa eficiente para pesquisar mudanças na área de transferência com JavaScript.
Ativar notificações de chamadas recebidas
Esse recurso estende a API Notifications para permitir que PWAs instaladas enviem notificações de chamadas recebidas, ou seja, notificações com botões no estilo de chamada e um toque. Essa extensão ajuda apps da Web VoIP a criar experiências mais envolventes, facilitando o reconhecimento e o atendimento de notificações de chamadas pelos usuários. Além disso, esse recurso ajuda a diminuir a diferença entre as implementações nativas e da Web de apps que têm as duas.
Apresentar a API de chave-valor do Crash Reporting
Esse recurso apresenta uma nova API de chave-valor, provisoriamente window.crashReport
, com suporte de um mapa por documento que contém dados anexados aos relatórios de falhas.
Os dados colocados no mapa de suporte dessa API são enviados no CrashReportBody
se
ocorrerem falhas no processo de renderização no site. Isso permite que os desenvolvedores
depurem qual estado específico no aplicativo pode estar causando uma determinada falha.
Descontinuações e remoções
Esta versão do Chrome apresenta as suspensões de uso e remoções listadas abaixo. Acesse ChromeStatus.com para conferir listas de suspensões de uso planejadas, atuais e remoções anteriores.
Esta versão do Chrome descontinua um recurso.
Descontinuação de regras especiais de tamanho da fonte para <h1>
em alguns elementos
A especificação HTML contém uma lista de regras especiais para tags <h1>
aninhadas em elementos
<article>
, <aside>
, <nav>
ou <section>
.
Essas regras especiais foram descontinuadas porque causam problemas de acessibilidade.
Ou seja, eles reduzem visualmente o tamanho da fonte dos <h1>
s aninhados para que pareçam <h2>
s, mas nada na árvore de acessibilidade reflete essa mudança visual.