Chrome 125

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

Salvo indicação em contrário, as seguintes mudanças se aplicam ao Chrome 125 Stable lançamento do canal para Android, ChromeOS, Linux, macOS e Windows.

HTML e DOM

Serialização declarativa do shadow DOM

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

Bug de rastreamento 41490936 | Entrada de ChromeStatus.com | Especificação

CSS

Posicionamento de âncora do CSS

O posicionamento de âncora do CSS permite que os desenvolvedores vinculem um elemento posicionado de forma absoluta a um ou mais elementos na página (os elementos de âncora), de forma declarativa, sem usar JavaScript. O posicionamento da âncora funciona com bom desempenho e âncoras são roláveis. Um caso de uso comum é posicionar um pop-up, como um tooltip, ao lado do elemento que o invocou ou um menu de seleção e a lista de opções do pop-up. Antes do recurso de posicionamento de âncora, esses casos de uso exigiam JavaScript para posicionar dinamicamente o pop-up e mantê-lo ancorado à medida que o elemento de invocação era rolado, o que é uma armadilha de desempenho e difícil de corrigir. Com o posicionamento da â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. Um algumas das principais propriedades são:

  • anchor-name: configura um elemento para ser uma âncora para outros elementos.
  • position-anchor: descreve o "padrão". que um elemento ancorado deve usar para o posicionamento da âncora.
  • A função anchor(): usada para se referir à posição do elemento de âncora, ao posicionar o elemento ancorado.
  • inset-area: uma abreviação de posicionamento, para posições relativas comuns.

Introdução à API de posicionamento de âncoras de CSS | Bug de rastreamento 40059176 | Entrada de ChromeStatus.com | Especificação

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

As funções de valor escalonado, round(), mod() e rem(), todas transformam um 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 parâmetro, semelhante ao operador JavaScript restante (%). O módulo é o valor deixado quando um operando, o dividendo, é dividido por um segundo operando, o divisor. Sempre leva o sinal do divisor.

A função CSS rem() retorna um restante quando o primeiro parâmetro é dividido pelo segundo, semelhante ao operador de resto do JavaScript (%). O restante é o valor restante quando um operando, o dividendo, é dividido por um segundo operando, o divisor. Sempre leva o sinal do dividendos.

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

Nova sintaxe para CSS personalizado :state()

O estado personalizado do CSS permite que os 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 exibirá uma janela em que o Chrome serão compatíveis com a sintaxe antiga (:--foo) e a nova para que os sites pode trocar para a nova opção.

Entrada ChromeStatus.com | Especificações

Remover a 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 claridade de 100% foram renderizados como brancos, 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 em gradientes e foram inesperados para desenvolvedores de aplicativos.

Com essa reversão, essas cores não são mais mapeadas artificialmente, e a cor mostrada resultante será contínua com as cores próximas e dependerá do mapeamento de gama da tela.

Entrada do ChromeStatus.com | Especificação

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 viewport se o valor de "esquema de cores com suporte da página" for "normal" ou não especificado, e o valor computado 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 devem respeitar o nome esquema de cores preferido ao renderizar barras de rolagem da janela de visualização se o desenvolvedor suporte não especificado explicitamente para esquemas de cores.

Essa alteração não impede que os desenvolvedores controlem o esquema de cores para barras de rolagem. O novo comportamento faz com que o navegador use a configuração de preferência esquema de cores para renderizar barras de rolagem sem sobreposição da janela de visualização somente se o desenvolvedor não especificou o esquema de cores do elemento raiz.

título [title] | Bug de rastreamento 40259909 | Entrada de 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, selecione os pseudoelementos ViewTransition usando essas classes, por exemplo, ::view-transition-group(*.class).

Esta é uma extensão da API ViewTransition que simplifica o estilo de pseudoelementos de transição de visualização de maneira semelhante as classes CSS simplificam a estilização de elementos DOM normais.

Bug de rastreamento 41492972 | Entrada de ChromeStatus.com | Especificação

Carregando

Aceitar URLs HTTP e HTTPS ao criar WebSocket

Essa atualização ativa esquemas HTTP e HTTPS no construtor WebSocket, permitindo que os desenvolvedores usem URLs relativos. Elas são normalizadas os esquemas internos ws: e wss:.

Bug de rastreamento 325979102 | Entrada de ChromeStatus.com | Especificação

APIs Web

Adições à API Attribution Reporting

Recursos foram adicionados à API Attribution Reporting para criar mais de depuração de recursos por oferecer suporte à análise de relatórios de depuração de falhas, melhorar a API ergonomia ao incluir um campo para especificar a plataforma de registro preferencial e e melhorar a privacidade.

Entrada do ChromeStatus.com

A API Compute Pressure

A API Compute Pressure oferece estados de alto nível que representam a carga da CPU no sistema. Ela permite que implementação para usar as métricas de hardware subjacentes certas para garantir que os usuários possam aproveitar todo o poder de processamento disponível, desde que o em um sistema não está sob estresse impossível.

A Intel liderou o design e a implementação dessa API, permitindo que os apps de videoconferência equilibrem dinamicamente recursos e desempenho.

API Compute Pressure | Bug de rastreamento #40683064 | Entrada do ChromeStatus.com | Especificação

Isso inicia a extensão proposta da API Storage Access (retroativa compatíveis e estão em teste de origem) para permitir o acesso a cookies e sem cookies em um contexto de terceiros. A API atual só fornece acesso a cookies, que têm casos de uso diferentes do armazenamento sem cookies.

Bug de rastreamento 40282415 | Entrada de ChromeStatus.com | Especificação

Requisito de CORS do FedCM no endpoint de declaração de ID

As buscas na API FedCM são difíceis de considerar por causa das propriedades exigidos deles. Há uma discussão contínua sobre as contas endpoint, há também um grande consenso de que o endpoint de declaração de ID deve e usar CORS. Essa atualização alinha as propriedades de segurança dessa busca de forma mais precisa outras buscas na plataforma da Web.

Atualizações do FedCM: teste de origem da API botão Mode, CORS e SameSite | Bug de rastreamento 40284123 | Entrada de ChromeStatus.com

O FedCM agora envia solicitações de declaração de ID com CORS. Com essa mudança, o Chrome não vai mais enviar cookies SameSite=Strict para o endpoint de declaração de ID, embora As imagens estáticas do Chrome enviam 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 requestStorageAccess e as solicitações entre sites em geral.

Rastreamento do bug #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 de movimento do mouse para impedir outras APIs, como texto (e até mesmo arrastar e soltar antes). Este campo não corresponde a outros cursos navegadores nem está em conformidade com as especificações do evento da interface. Agora, a seleção de texto não mais ser a ação padrão de mousemove. 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 aos poucos a partir do Chrome 125, e esperamos para todos os usuários até o Chrome 126.

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

Modificadores de expressão regular

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

Para ativar uma flag para uma subexpressão, use (?X:subexpr), em que X é um dos i, m ou s. Para desativar uma flag para uma subexpressão, use (-X:subexpr).

Por exemplo, para a flag i sem distinção entre maiúsculas e 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

A expressão regular duplica grupos de captura nomeados

Grupos de captura nomeados duplicados permitem usar o mesmo nome de grupo de captura entre 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 a segunda alternativa ([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 da Web isolados, ativando os Sockets diretos nos apps do Chrome, permitindo que os apps da Web estabelecessem comunicações de protocolo de controle de transmissão (TCP, na sigla em inglês) e de datagramas do usuário (UDP, na sigla em inglês) diretos 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

Este teste de origem inclui as duas APIs FedCM a seguir.

A API Button Mode permite que os sites chamem a FedCM dentro de um clique no botão, como um clique no botão Fazer login no IdP. Isso exige que o FedCM garanta a sempre responde com uma interface do usuário visível, em vez do modo de widget, que não mostra a IU quando os usuários saem. Chamar a API FedCM no button mode: leva os usuários ao login no IdP (em uma janela de diálogo) quando eles não tiverem feito login.

Além disso, como o modo do botão é chamado dentro de uma solicitação de a interface pode ficar mais proeminente (por exemplo, centralizada e modal) em comparação com a interface do modo de widget (que não tem uma interface intenção). Saiba mais sobre como a API de modo de botão funciona em Atualizações do FedCM: teste de origem da API botão 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 | Demo | Bug de rastreamento #40284792 | Entrada do ChromeStatus.com | Especificação

APIs dobráveis

Este teste de origem inclui a API Device Posture e os segmentos da janela de visualização API 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 de métodos e propriedades prefixados de tela cheia HTMLVideoElement

Esse teste de descontinuação permite que você ative novamente o suporte para as propriedades e os métodos prefixados de HTMLVideoElement se precisar de mais tempo para ajustar seu código.

Teste de origem | Entrada de ChromeStatus.com

Ignorar a 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 scanner de pré-carregamento beneficia a performance de páginas com busca de subrecursos com a implementação da pré-busca especulativa. No entanto, para páginas que não se beneficiam dessa etapa, ou seja, para páginas sem subrecursos, essa é uma sobrecarga de processamento adicional com pouco benefício.

Para usuários avançados da Web que gostariam de se beneficiar com a redução dessa sobrecarga, este o experimento fornece um controle no nível da página para desativar a verificação de pré-carregamento. Dados coletados dessa experiência podem avaliar se uma API modificada ou uma implementação do scanner de pré-carregamento HTML seria útil.

Teste de origem | Rastreamento do bug #330802493 | Entrada do ChromeStatus.com | Especificação

Suspensões de uso e remoções

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

Remove o alias "window-placement" para a política de permissão e permissão "window-management". Isso faz parte de um esforço maior para renomear as strings eventualmente descontinuação e remoção de "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 #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 foi ativada em versões estáveis desde agosto de 2023 (Chrome 118). Como problemas conhecidos já foram resolvidos, esta empresa foi removida no Chrome 125.

Entrada do ChromeStatus.com

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

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

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

  • webkitSupportsFullscreen
  • webkitDisplayingFullscreen
  • webkitEnterFullscreen()
  • webkitExitFullscreen()
  • webkitEnterFullScreen() (observe a diferença de maiúsculas e minúsculas da letra "S" em tela cheia)
  • webkitExitFullScreen()

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

Entrada do ChromeStatus.com

Leitura adicional

Quer saber mais? Confira estes recursos adicionais.

Fazer o download do Google Chrome

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