Chrome 125

Data de lançamento estável:14 de maio de 2024

Salvo indicação em contrário, as mudanças a seguir se aplicam à versão do Canal Stable do Chrome 125 para Android, ChromeOS, Linux, macOS e Windows.

HTML e DOM

Serialização declarativa do shadow DOM

Um recurso para permitir que os desenvolvedores serializem árvores do DOM contendo raízes paralelas, padronizadas recentemente no padrão HTML.

Bug de rastreamento 41490936 | Entrada em ChromeStatus.com | Especificações

CSS

Posicionamento de âncoras de CSS

Com o posicionamento de âncoras CSS, os desenvolvedores podem vincular um elemento posicionado absolutamente a um ou mais elementos na página (as âncoras), de maneira declarativa, sem usar JavaScript. O posicionamento de âncora funciona de maneira eficiente quando as âncoras são roláveis. Um caso de uso comum é posicionar um pop-up, como uma dica ao lado do elemento que o invocou ou um menu de seleção e a lista de opções dele. Antes do recurso de posicionamento de âncoras, esses casos de uso exigiam JavaScript para posicionar dinamicamente o pop-up e o manter fixado à medida que o elemento de invocação era rolado, o que é um recurso de performance difícil de acertar. Com o posicionamento de âncora, esses casos de uso podem ser implementados de maneira eficiente e declarativa.

O recurso de posicionamento de âncoras consiste em várias propriedades CSS. Estas são algumas das principais propriedades:

  • 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 dela.
  • A função anchor(): usada para se referir à posição do elemento de âncora ao posicionar esse elemento.
  • inset-area: uma abreviação de posicionamento, para posições relativas comuns.

Apresentação da API CSS anchor posicionamento | Bug de rastreamento no 40059176 | Entrada em ChromeStatus.com | Especificações

Funções de valor em etapas do CSS: round(), mod() e rem()

As funções com valor em degraus, 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 à esquerda quando o primeiro parâmetro é dividido pelo segundo, semelhante ao operador JavaScript de resto (%). 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 restante restante quando o primeiro parâmetro é dividido pelo segundo, semelhante ao operador JavaScript de resto (%). O restante é o valor restante quando um operando, o dividendo, é dividido por um segundo operando, o divisor. Ele sempre pega o sinal do dividendo.

Bug de rastreamento 40253179 | Entrada em ChromeStatus.com | Especificações

Nova sintaxe para o CSS personalizado :state()

O estado personalizado do CSS permite que elementos personalizados exponham as próprias pseudoclasses. A sintaxe agora foi especificada no CSSWG, e o Chrome 125 agora é compatível com a nova sintaxe :state(foo). Essa mudança terá uma janela em que o Chrome vai oferecer suporte à sintaxe antiga (:--foo) e à nova sintaxe, para que os sites possam mudar para a nova.

Entrada em ChromeStatus.com | Especificações

Remoção de descontinuidade para cores do Oklab e Oklch com brilho de quase 100% ou 0

Antes dessa mudança, todas as cores de Lab, LCH, Oklab e Oklch com um valor de brilho de 100% eram renderizadas como brancas, independentemente dos outros dois parâmetros. Todas as cores nesses espaços com um valor de luminosidade 0 foram renderizadas como pretas. Esses dois mapeamentos causaram descontinuidades nos gradientes e eram inesperados para os desenvolvedores da Web.

Com essa reversão, essas cores não são mais mapeadas artificialmente, e a cor resultante é contínua em relação às cores próximas e depende do mapeamento de gama da tela.

Entrada em ChromeStatus.com | Especificações

Foram usadas barras de rolagem raiz do esquema de cores

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 dos "esquemas de cores compatíveis da 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 preferencial do usuário ao renderizar as barras de rolagem da janela de visualização caso o desenvolvedor não tenha especificado explicitamente o suporte a esquemas de cores.

Essa mudança não impede que os desenvolvedores controlem o esquema de cores para 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 do elemento raiz.

title | Bug de rastreamento 40259909 | Entrada em ChromeStatus.com | Especificações

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, selecione os pseudoelementos ViewTransition usando essas classes, por exemplo, ::view-transition-group(*.class).

Essa é uma extensão da API ViewTransition que simplifica a estilização dos pseudoelementos de transição de visualização da mesma forma que as classes CSS simplificam a estilização de elementos DOM regulares.

Bug 41492972 de rastreamento | Entrada em ChromeStatus.com | Especificações

Carregando

Aceitar URLs HTTP e HTTPS ao criar WebSocket

Essa atualização ativa esquemas HTTP e HTTPS no construtor WebSocket e, portanto, também permite que os desenvolvedores usem URLs relativos. Eles são normalizados para os esquemas internos ws: e wss:.

Bug de rastreamento 325979102 | Entrada em ChromeStatus.com | Especificações

APIs Web

Adições à API Attribution Reporting

Os recursos foram adicionados à API Attribution Reporting para criar outras funções de depuração com suporte à análise de relatórios de depuração de falhas, melhorar a ergonomia da API oferecendo suporte a um campo para especificar a plataforma de registro preferida e melhorar a privacidade.

Entrada ChromeStatus.com

API Compute Pressure

A API Compute Pressure oferece estados de alto nível que representam a carga da CPU no sistema. Ele permite que a implementação use as métricas de hardware subjacentes corretas para garantir que os usuários possam aproveitar toda a capacidade de processamento disponível, desde que o sistema não esteja sob estresse impossível de gerenciar.

A Intel liderou o trabalho de design e implementação dessa API, que vai permitir que apps de videoconferência equilibrem recursos e desempenho dinamicamente.

API Compute Pressure | Bug de rastreamento 40683064 | Entrada em ChromeStatus.com | Especificações

Isso inicia a extensão proposta da API Storage Access (compatível com versões anteriores e 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 40282415 | Entrada em ChromeStatus.com | Especificações

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 exigidas. Embora haja uma discussão em andamento sobre o endpoint das contas, também há um grande 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 às outras buscas na plataforma da Web.

Atualizações do FedCM: teste de origem da API Button Mode, CORS e SameSite | Acompanhamento do bug no 40284123 | Entrada do ChromeStatus.com

A FedCM agora envia solicitações de declaração de ID com CORS. Com essa mudança, o Chrome não envia mais cookies SameSite=Strict para o endpoint de declaração de ID, mas ainda assim envia SameSite=None. Como não faz sentido enviar um conjunto diferente de cookies ao endpoint das contas e da declaração de ID, essa mudança os torna consistentes.

Não enviar cookies SameSite=Strict também é consistente com o comportamento requestStorageAccess e solicitações entre sites em geral.

Bug de rastreamento 329145816 | Entrada em ChromeStatus.com | Especificações

Ação padrão de movimentação do mouse interoperabilidade

O Chrome permitiu o cancelamento de eventos de mousemove para impedir outras APIs, como seleção de texto (e até mesmo arrastar e soltar antes). Isso não corresponde a outros navegadores principais nem está em conformidade com as especificações de evento de interface. Agora, a seleção de texto não será mais a ação padrão de mover o mouse. A seleção de texto e o recurso de arrastar e soltar ainda podem ser impedidos com o cancelamento dos eventos selectstart e dragstart, respectivamente.

Esse recurso será lançado lentamente a partir do Chrome 125 e deve estar disponível para todos os usuários até o Chrome 126.

Demonstração | Bug 40078978 de rastreamento | Entrada no ChromeStatus.com | Especificações

Modificadores de expressão regular

Os modificadores de expressão regular adicionam a capacidade de modificar localmente as flags i, m e s dentro de um padrão.

Para ativar uma sinalização para uma subexpressão, use (?X:subexpr), em que X é i, m ou s. Para desativar a flag de 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 em ChromeStatus.com | Especificações

Expressão regular de grupos de captura nomeados duplicados

Grupos de captura nomeados duplicados permitem usar o mesmo nome de grupo de captura nas 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 alternativa ([0-9]{2}-(?<year>[0-9]{4})).

Entrada em ChromeStatus.com | Especificações

Apps do Chrome

API Direct Sockets em apps do Chrome

Essa atualização facilita a transição de apps especializados de apps do Chrome para apps da Web isolados, ativando os soquetes diretos em apps do Chrome, permitindo que os apps da Web estabeleçam comunicações do protocolo de controle de transmissão (TCP, na sigla em inglês) e do protocolo de datagramas do usuário (UDP) com dispositivos e sistemas de rede.

Entrada em ChromeStatus.com | Especificações

Novos testes de origem

API FedCM Button Mode e Use Other Account API

Esse teste de origem inclui as duas APIs do FedCM a seguir.

A API Button Mode permite que os sites chamem o FedCM dentro de um clique de botão, como clicar em um botão 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 caixa de diálogo) quando os usuários estiverem desconectados.

Além disso, como o modo de botão é chamado em um gesto explícito do usuário, a interface também pode ser mais proeminente (por exemplo, centralizada e modal) em comparação à 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 do 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 40284792 de rastreamento | Entrada no ChromeStatus.com | Especificações

APIs dobráveis

Esse teste de origem inclui a API Device posture e a API Viewport Enumeration. Essas APIs foram projetadas para ajudar os desenvolvedores a segmentar dispositivos dobráveis.

Teste de origem | Teste de origem para APIs dobráveis | Entrada em ChromeStatus.com | Especificação

Suspensão de teste para propriedades e métodos com prefixo HTMLVideoElement Fullscreen

Com esse teste de descontinuação, é possível reativar o suporte para as propriedades e os métodos HTMLVideoElement prefixados se precisar de mais tempo para ajustar seu código.

Teste de origem | Entrada em ChromeStatus.com

Ignorar verificação de pré-carregamento

Ignora o verificador de pré-carregamento para explorar compensações de desempenho para páginas sem buscas de sub-recursos.

A etapa do verificador de pré-carregamento beneficia o desempenho das páginas com buscas de sub-recursos por meio da implementação da pré-busca especulativa. No entanto, para as páginas que não se beneficiam dessa etapa, ou seja, para páginas sem sub-recursos, isso é uma sobrecarga adicional de processamento com poucos benefícios.

Para usuários avançados da Web que querem se beneficiar da redução dessa sobrecarga, esse experimento oferece um controle no nível da página para desativar o verificador de pré-carregamento. Os dados coletados desse experimento podem avaliar se uma API modificada ou uma implementação diferente do verificador de pré-carregamento de HTML são úteis.

Teste de origem | Bug 330802493 de rastreamento | Entrada em ChromeStatus.com | Especificações

Descontinuações e remoções

Remoção do alias "window-placement" da permissão e política de permissões "window-management"

Remove o alias "window-placement" da política de permissões "window-management". Isso faz parte de um esforço maior para renomear as strings com a desativação do uso e remoção da "window-placement" em algum momento. A mudança de terminologia melhora a longevidade do descritor à medida que a API Window Management evolui com o tempo.

title | Bug de rastreamento 40842072 | Entrada no ChromeStatus.com | Especificações

Remoção da política corporativa: NewBaseUrlInheritanceBehaviorAllowed

A mudança de código subjacente (ativar novo comportamento de herança de URL de base) que essa política corporativa substitui foi ativada em versões estáveis desde agosto de 2023 (Chrome 118). Como problemas conhecidos foram resolvidos, essa política empresarial foi removida no Chrome 125.

Entrada ChromeStatus.com

Remoção de propriedades e métodos HTMLVideoElement prefixados Fullscreen

As APIs de tela cheia HTMLVideoElement prefixadas foram descontinuadas desde o Chrome 38. Elas foram substituídas por Element.requestFullscreen(), que pela primeira vez foi enviado sem prefixo em 2018, no Chrome 71.

As propriedades e os métodos a seguir serão removidos do HTMLVideoElement:

  • webkitSupportsFullscreen
  • webkitDisplayingFullscreen
  • webkitEnterFullscreen()
  • webkitExitFullscreen()
  • webkitEnterFullScreen() (observe as diferentes letras maiúsculas do "S" em FullScreen)
  • webkitExitFullScreen()

Caso seu site ainda dependa deles e você precise de mais tempo para atualizar o código, inscreva-se para o teste de descontinuação listado nesta postagem.

Entrada ChromeStatus.com

Leia mais

Quer saber mais? Confira estes recursos adicionais.

Fazer o download do Google Chrome

Faça o download do Chrome para Android, computador ou iOS.