Data de lançamento da versão estável: 14 de maio de 2024
Salvo indicação em contrário, as mudanças a seguir se aplicam à versão estável do Chrome 125 para Android, ChromeOS, Linux, macOS e Windows.
HTML e DOM
Serialização de DOM paralelo declarativo
Um recurso que permite aos desenvolvedores serializar árvores do DOM que contêm raízes shadow, recentemente padronizado no padrão HTML.
Bug de rastreamento nº 41490936 | Entrada do ChromeStatus.com | Especificação
CSS
Posicionamento de âncora CSS
O posicionamento de âncora CSS permite que os desenvolvedores vinculem um elemento posicionado de forma absoluta a um ou mais elementos na página (as âncoras), de maneira declarativa, sem o uso de JavaScript. O posicionamento de âncoras funciona bem quando as âncoras são roláveis. Um caso de uso comum é posicionar um popover, como uma dica, ao lado do elemento que o invocou ou um menu de seleção e a lista de opções do popover. Antes do recurso de posicionamento de âncora, esses casos de uso exigiam JavaScript para posicionar dinamicamente o popover e mantê-lo ancorado conforme o elemento de invocação era rolado, o que é um problema de desempenho e difícil de fazer corretamente. Com o posicionamento de âncora, esses casos de uso podem ser implementados de forma eficiente e declarativa.
O recurso de posicionamento de âncora consiste em um grande número de propriedades CSS. Algumas das principais propriedades são as seguintes:
anchor-name: configura um elemento para ser uma âncora para outros elementos.position-anchor: descreve a âncora "padrão" que um elemento ancorado precisa usar para o posicionamento de âncora.- A função
anchor(): usada para se referir à posição do elemento âncora ao posicionar o elemento fixado. inset-area: uma abreviação para posicionamento relativo, para posições relativas comuns.
Introdução à API CSS Anchor Positioning | Bug de rastreamento nº 40059176 | Entrada do ChromeStatus.com | Especificação
Funções de valor escalonado de CSS: round(), mod() e rem()
As funções de valor escalonado,
round(),
mod() e
rem(), transformam um determinado
valor de acordo com outro "valor de etapa".
A função CSS round() retorna um número arredondado com base em uma estratégia de arredondamento
selecionada.
A função CSS mod() retorna um módulo restante quando o primeiro parâmetro é
dividido pelo segundo, semelhante ao operador de resto do JavaScript
(%). O módulo é o valor restante quando um operando, o dividendo, é
dividido por um segundo operando, o divisor. Ela sempre usa o sinal do divisor.
A função CSS rem() retorna um resto quando o primeiro parâmetro é dividido pelo segundo, semelhante ao operador de resto do JavaScript (%). O resto é o valor que sobra quando um operando, o dividendo, é dividido por um segundo operando, o divisor. Ela sempre usa o sinal do dividendo.
Bug de rastreamento nº 40253179 | Entrada do ChromeStatus.com | Especificação
Nova sintaxe para :state() personalizado de CSS
O estado personalizado de CSS permite que elementos personalizados exponham as próprias pseudoclasses. A
sintaxe agora foi especificada no CSSWG, e o Chrome 125 agora oferece suporte à nova
sintaxe :state(foo). Essa mudança terá uma janela em que o Chrome
vai oferecer suporte à sintaxe antiga (:--foo) e à nova para que os sites
possam mudar para a nova.
Entrada do ChromeStatus.com | Especificação
Remoção da descontinuidade para cores Oklab e Oklch com luminosidade de quase 100% ou 0
Antes dessa mudança, todas as cores Lab, LCH, Oklab e Oklch com um valor de luminosidade de 100% eram renderizadas como brancas, independentemente dos outros dois parâmetros. Todas as cores nesses espaços com um valor de luminosidade de 0 foram renderizadas como preto. Esses dois mapeamentos causaram descontinuidades nos gradientes e foram inesperados para os desenvolvedores da Web.
Com essa reversão, essas cores não são mais mapeadas artificialmente, e a cor resultante exibida será contínua com as cores próximas e dependerá do mapeamento de gama da tela.
Entrada do ChromeStatus.com | Especificação
Barras de rolagem raiz do esquema de cores usado
Faz com que o navegador use o esquema de cores preferido do usuário para renderizar as barras de rolagem
da janela de visualização se o valor de "esquemas de cores compatíveis com a página" for "normal" ou não
especificado, e o valor calculado de
color-scheme
para o elemento raiz for normal. As barras de rolagem da janela de visualização podem ser consideradas
fora do conteúdo da Web. Portanto, os user agents precisam respeitar o esquema de cores preferido do usuário ao renderizar barras de rolagem da janela de visualização se o desenvolvedor não tiver especificado explicitamente a compatibilidade com esquemas de cores.
Essa mudança não impede que os desenvolvedores controlem o esquema de cores das barras de rolagem. O novo comportamento faz com que o navegador use o esquema de cores preferido do usuário para renderizar barras de rolagem que não são de sobreposição da janela de visualização somente se o desenvolvedor não tiver especificado o esquema de cores para o elemento raiz.
title | Bug de rastreamento nº 40259909 | Entrada do ChromeStatus.com | Especificação
Classe view-transitions
Há uma nova propriedade CSS view-transition-class que permite
especificar uma ou mais classes de transição de visualização. Em seguida, você pode selecionar os pseudoelementos ViewTransition usando essas classes, por exemplo, ::view-transition-group(*.class).
Essa é uma extensão da API ViewTransition que simplifica o estilo de pseudoelementos de transição de visualização de maneira semelhante à forma como as classes CSS simplificam o estilo de elementos DOM comuns.
Bug de rastreamento nº 41492972 | Entrada do ChromeStatus.com | Especificação
Carregando
Aceitar URLs HTTP e HTTPS ao criar o WebSocket
Essa atualização ativa os esquemas HTTP e HTTPS no construtor WebSocket,
permitindo que os desenvolvedores usem URLs relativos. Eles são normalizados para
os esquemas internos ws: e wss:.
Bug de rastreamento nº 325979102 | Entrada do ChromeStatus.com | Especificação
APIs Web
Adições à API Attribution Reporting
Foram adicionados recursos à API Attribution Reporting para criar mais recursos de depuração, oferecendo suporte a relatórios de depuração de falhas de análise, melhorando a ergonomia da API com um campo para especificar a plataforma de registro preferida e melhorando a privacidade.
API Compute Pressure
A API Compute Pressure oferece estados de alto nível que representam a carga da CPU no sistema. Isso permite que a implementação use as métricas de hardware subjacentes corretas para garantir que os usuários possam aproveitar todo o poder de processamento disponível, desde que o sistema não esteja sob estresse incontrolável.
A Intel liderou o trabalho de design e implementação dessa API, que vai permitir que os apps de videoconferência equilibrem dinamicamente os recursos e o desempenho.
API Compute Pressure | Bug de rastreamento nº 40683064 | Entrada do ChromeStatus.com | Especificação
Extensão da API Storage Access (SAA) para armazenamento sem cookies
Isso inicia a extensão proposta da API Storage Access (compatível com versões anteriores e que está em teste de origem) para permitir o acesso a cookies não particionados e ao armazenamento sem cookies em um contexto de terceiros. A API atual fornece acesso apenas a cookies, que têm casos de uso diferentes do armazenamento sem cookies.
Bug de rastreamento nº 40282415 | Entrada do ChromeStatus.com | Especificação
Requisito de CORS da FedCM no endpoint de declaração de ID
As buscas na API FedCM são difíceis de entender devido às propriedades necessárias. Embora haja uma discussão em andamento sobre o endpoint de contas, também há um consenso de que o endpoint de declaração de ID precisa usar o CORS. Essa atualização alinha as propriedades de segurança dessa busca mais de perto com outras buscas na plataforma da Web.
Atualizações do FedCM: teste de origem da API Button Mode, CORS e SameSite | Bug de rastreamento nº 40284123 | Entrada do ChromeStatus.com
A solicitação de credencial da FedCM não envia mais o cookie SameSite=Strict
O FedCM agora envia solicitações de declaração de ID com CORS. Essa mudança significa que o Chrome
não envia mais cookies SameSite=Strict para o endpoint de declaração de ID, embora
ainda envie SameSite=None. Como não faz sentido enviar um
conjunto diferente de cookies para o endpoint de contas e o endpoint de declaração de
ID, essa mudança os torna consistentes.
Não enviar cookies SameSite=Strict também é consistente com o
comportamento de requestStorageAccess
e solicitações entre sites em geral.
Bug de rastreamento nº 329145816 | Entrada do ChromeStatus.com | Especificação
Ação padrão de movimentação do mouse interoperável
O Chrome permitiu o cancelamento de eventos mousemove para evitar outras APIs, como a seleção de texto, e até mesmo o recurso de arrastar e soltar antes. Isso não corresponde aos outros principais navegadores nem está em conformidade com a especificação de eventos da interface. Agora, a seleção de texto não será mais a ação padrão do movimento do mouse. A seleção de texto e o recurso de arrastar e soltar ainda podem ser evitados com o cancelamento dos eventos selectstart e dragstart, respectivamente.
Esse recurso será lançado gradualmente a partir do Chrome 125 e deve estar disponível para todos os usuários no Chrome 126.
Demonstração | Bug de rastreamento nº 40078978 | Entrada do ChromeStatus.com | Especificação
Modificadores de expressão regular
Os modificadores de expressão regular adicionam a capacidade de modificar localmente as flags i, m
e s em um padrão.
Para ativar uma flag para uma subexpressão, use (?X:subexpr), em que X é i, m ou s. Para desativar uma flag em uma subexpressão, use (-X:subexpr).
Por exemplo, para a flag i que não diferencia maiúsculas de minúsculas:
const re1 = /^[a-z](?-i:[a-z])$/i;
re1.test("ab"); // true
re1.test("Ab"); // true
re1.test("aB"); // false
const re2 = /^(?i:[a-z])[a-z]$/;
re2.test("ab"); // true
re2.test("Ab"); // true
re2.test("aB"); // false
Entrada do ChromeStatus.com | Especificação
Grupos de captura nomeados duplicados de expressão regular
Os grupos de captura nomeados duplicados permitem usar o mesmo nome de grupo de captura em várias alternativas. Por exemplo:
const re = /(?<year>[0-9]{4})-[0-9]{2}|[0-9]{2}-(?<year>[0-9]{4})/;
Nesse caso, year é válido para a primeira alternativa ((?<year>[0-9]{4})-[0-9]{2})
ou para a segunda ([0-9]{2}-(?<year>[0-9]{4})).
Entrada do ChromeStatus.com | Especificação
Apps do Chrome
API Direct Sockets em apps do Chrome
Essa atualização facilita a transição de apps especializados dos apps do Chrome para Apps Isolados da Web, ativando os soquetes diretos nos apps do Chrome, permitindo que os apps da Web estabeleçam comunicações diretas de protocolo de controle de transmissão (TCP) e protocolo de datagramas do usuário (UDP) com dispositivos e sistemas de rede.
Entrada do ChromeStatus.com | Especificação
Novos testes de origem
API FedCM Button Mode e API Use Other Account
Esse teste de origem inclui as duas APIs FedCM a seguir.
A API Button Mode permite que os sites chamem a FedCM com um clique em um botão, como Fazer login no IdP. Isso exige que a FedCM garanta que sempre responda com uma interface do usuário visível, ao contrário do modo de widget, que não mostra uma interface quando os usuários saem. Chamar a API FedCM no modo de botão leva os usuários a fazer login no IdP (em uma janela de diálogo) quando eles estão desconectados.
Além disso, como o modo de botão é chamado em uma interação inicial explícita, a interface também pode ser mais proeminente (por exemplo, centralizada e modal) em comparação com a interface do modo de widget (que não tem essa intenção explícita). Saiba mais sobre como a API Button Mode funciona em Atualizações da FedCM: teste de origem da API Button Mode, CORS e SameSite.
A API Use Other Account permite que um provedor de identidade permita que os usuários façam login em outras contas.
Teste de origem | Demonstração | Bug de rastreamento nº 40284792 | Entrada do ChromeStatus.com | Especificação
APIs para dobráveis
Esse teste de origem inclui a API Device Posture e a API Viewport Segments Enumeration. Essas APIs foram criadas para ajudar os desenvolvedores a segmentar dispositivos dobráveis.
Teste de origem | Teste de origem para APIs dobráveis | Entrada do ChromeStatus.com | Especificação
Teste de descontinuação para propriedades e métodos de tela cheia prefixados de HTMLVideoElement
Esse teste de descontinuação permite que você reative o suporte às propriedades e aos métodos HTMLVideoElement prefixados se precisar de mais tempo para ajustar seu código.
Teste de origem | Entrada do ChromeStatus.com
Pular verificação de pré-carregamento
Ignora o scanner de pré-carregamento para analisar as compensações de desempenho em páginas sem buscas de subrecursos.
A etapa do scanner de pré-carregamento beneficia o desempenho de páginas com buscas de sub-recursos, com a implementação da pré-busca especulativa. No entanto, para páginas que não se beneficiam dessa etapa, ou seja, páginas sem sub-recursos, isso é uma sobrecarga de processamento adicional com pouco benefício.
Para usuários avançados da Web que querem se beneficiar da redução dessa sobrecarga, este experimento oferece um controle no nível da página para desativar o scanner de pré-carregamento. Os dados coletados desse experimento podem avaliar se uma API modificada ou uma implementação diferente do scanner de pré-carregamento de HTML seria útil.
Teste de origem | Bug de rastreamento nº 330802493 | Entrada do ChromeStatus.com | Especificação
Descontinuações e remoções
Remover o alias "window-placement" para a permissão e a política de permissão "window-management"
Remove o alias "window-placement" para a permissão e a política de permissão "window-management". Isso faz parte de um esforço maior para renomear as strings, descontinuando e removendo "window-placement". A mudança de terminologia melhora a longevidade do descritor à medida que a API Window Management evolui ao longo do tempo.
title | Bug de rastreamento nº 40842072 | Entrada do ChromeStatus.com | Especificação
Remoção da política corporativa: NewBaseUrlInheritanceBehaviorAllowed
A mudança no código subjacente (ativar o novo comportamento de herança de URL de base) que essa política corporativa substitui está ativada em versões estáveis desde agosto de 2023 (Chrome 118). Como problemas conhecidos foram resolvidos, essa política corporativa foi removida no Chrome 125.
Remoção de propriedades e métodos de tela cheia prefixados de HTMLVideoElement
As APIs de tela cheia prefixadas de HTMLVideoElement foram descontinuadas desde o
Chrome 38. Elas foram substituídas por Element.requestFullscreen(), que foi lançado
sem prefixo em 2018 no Chrome 71.
As seguintes propriedades e métodos serão removidos do HTMLVideoElement:
webkitSupportsFullscreenwebkitDisplayingFullscreenwebkitEnterFullscreen()webkitExitFullscreen()webkitEnterFullScreen()(observe a diferenciação entre letras maiúsculas e minúsculas na palavra FullScreen)webkitExitFullScreen()
Inscreva-se no teste de descontinuação listado nesta postagem se seu site ainda depende deles e você precisa de mais tempo para atualizar o código.
Leitura adicional
Quer saber mais? Confira estes recursos adicionais.
- Novidades do Chrome 125
- Novidades do Chrome DevTools 125
- Atualizações do ChromeStatus.com para o Chrome 125
- Calendário de lançamentos do Chrome
- Próximas descontinuações
- Próximas remoções
Fazer o download do Google Chrome
Baixe o Chrome para Android, computador ou iOS.