Data de lançamento da versão estável:4 de fevereiro de 2025
A menos que indicado de outra forma, as mudanças a seguir se aplicam à versão do canal estável 133 do Chrome para Android, ChromeOS, Linux, macOS e Windows.
HTML e DOM
O valor da dica do atributo de popover
A API Popover especifica o comportamento para dois valores do atributo popover: automático e manual. Esse recurso descreve um terceiro valor, popover=hint
. As dicas, que geralmente são associadas a comportamentos do tipo "tooltip", têm comportamentos um pouco diferentes. A principal diferença é que uma dica é subordinada a "auto" ao abrir pilhas aninhadas de popovers. Assim, é possível abrir um popover de dica não relacionado enquanto uma pilha de popovers automáticos permanece aberta.
O exemplo canônico é quando um seletor <select>
está aberto (popover=auto
) e uma dica acionada por passar o cursor (popover=hint
) é mostrada. Essa ação não fecha o seletor <select>
.
Rastreamento do bug #1416284 | Entrada do ChromeStatus.com
Melhorias no posicionamento de invocação e âncora de pop-up
Adiciona uma maneira imperativa de definir relações de invocação entre popovers com popover.showPopover({source})
. Permite que as relações de invocação criem referências de elementos de âncora implícita.
Rastreamento do bug #364669918 | Entrada do ChromeStatus.com
O pop-up aninhado dentro do invocador não precisa ser invocado novamente.
No caso a seguir, clicar no botão ativa corretamente o pop-up. No entanto, clicar no pop-up depois disso não deve fechar o pop-up.
<button popovertarget=foo>Activate
<div popover id=foo>Clicking me shouldn't close me</div>
</button>
Isso acontecia porque o clique no pop-up flutuava para o <button>
e ativava o invocador, que alternava o pop-up fechado. Isso foi alterado para o comportamento esperado.
Bug de rastreamento #https://crbug.com/379241451 | Entrada do ChromeStatus.com
CSS
Função attr()
avançada do CSS
Implementa o aumento de attr()
especificado no CSS Level 5, que permite tipos além de <string>
e uso em todas as propriedades do CSS (além do suporte existente para o conteúdo de pseudoelementos).
MDN attr() | Bug de rastreamento #246571 | Entrada do ChromeStatus.com | Especificação
Pseudoclasse :open
do CSS
A pseudoclasse :open
corresponde a <dialog>
e <details>
quando eles estão no estado aberto e corresponde a <select>
e <input>
quando eles estão em modos que têm um seletor e o seletor está sendo mostrado.
Bug de rastreamento #324293874 | Entrada do ChromeStatus.com | Especificação
Consultas de contêiner de estado de rolagem do CSS
Use consultas de contêiner para definir o estilo de descendentes de contêineres com base no estado de rolagem.
O contêiner de consulta é um contêiner de rolagem ou um elemento afetado pela posição de rolagem de um contêiner de rolagem. Os seguintes estados podem ser consultados:
stuck
: um contêiner fixo é preso a uma das bordas da caixa de rolagem.snapped
: um contêiner alinhado com o ajuste de rolagem está fixado horizontal ou verticalmente.scrollable
: indica se um contêiner de rolagem pode ser rolado na direção consultada.
Um novo container-type: scroll-state
permite que os contêineres sejam consultados.
Rastreamento do bug #40268059 | Entrada do ChromeStatus.com | Especificação
CSS text-box
, text-box-trim
e text-box-edge
Para alcançar o equilíbrio ideal do conteúdo de texto, as propriedades text-box-trim
e text-box-edge, junto com a propriedade abreviada text-box, permitem um controle mais preciso do alinhamento vertical do texto.
A propriedade text-box-trim
especifica os lados a serem cortados, acima ou abaixo, e a propriedade text-box-edge
especifica como a borda deve ser cortada.
Essas propriedades permitem controlar o espaçamento vertical com precisão usando as métricas da fonte.
Rastreamento do bug #1411581 | Entrada do ChromeStatus.com | Especificação
APIs Web
Animation.overallProgress
Oferece aos desenvolvedores uma representação conveniente e consistente de até onde uma animação avançou nas iterações, independentemente da natureza da linha do tempo. Sem a propriedade overallProgress
, é necessário calcular manualmente o quanto uma animação avançou, levando em consideração o número de iterações da animação e se o currentTime
da animação é uma porcentagem do tempo total (como no caso de animações controladas por rolagem) ou uma quantidade de tempo absoluta (como no caso de animações controladas por tempo).
Rastreamento do bug #40914396 | Entrada do ChromeStatus.com | Especificação
O método pause()
do objeto Atomics
Adiciona o método pause()
ao objeto de namespace Atomics
para indicar à CPU que o código atual está executando um spinlock.
Entrada do ChromeStatus.com | Especificação
Relatórios de hash do CSP para scripts
Aplicativos da Web complexos geralmente precisam manter o controle dos subrecursos que são transferidos por download por motivos de segurança.
Em particular, os próximos padrões e práticas recomendadas do setor (por exemplo, o PCI-DSS v4) exigem que os aplicativos da Web mantenham um inventário de todos os scripts que eles fazem o download e executam.
Esse recurso é baseado no CSP e na API Reporting para informar os URLs e hashes (para CORS/mesma origem) de todos os recursos de script que o documento carrega.
Rastreamento do bug #377830102 | Entrada do ChromeStatus.com
Mover preservando o estado do DOM
Adiciona uma primitiva DOM (Node.prototype.moveBefore
) que permite mover elementos em uma árvore DOM sem redefinir o estado do elemento.
Ao mover em vez de remover e inserir, o estado a seguir é preservado:
- Os elementos
<iframe>
continuam carregados. - O elemento ativo continua em foco.
- Pop-ups, caixas de diálogo modais e em tela cheia permanecem abertos.
- As transições e animações do CSS continuam.
Exposição do atributo attributionsrc
em <area>
.
Alinha a exposição do atributo attributionsrc
em <area>
com o comportamento de processamento atual do atributo, mesmo quando ele não foi exposto.
Além disso, faz sentido oferecer suporte ao atributo em <area>
, já que esse elemento é uma superfície de navegação de primeira classe, e o Chrome já oferece suporte a isso nas outras superfícies de <a>
e window.open
.
Bug de rastreamento #379275911 | Entrada do ChromeStatus.com | Especificação
Interface FileSystemObserver
A interface FileSystemObserver
notifica os sites sobre mudanças no sistema de arquivos. Os sites observam as mudanças em arquivos e diretórios, para os quais o usuário concedeu permissão anteriormente, no dispositivo local do usuário ou no sistema de arquivos do bucket (também conhecido como sistema de arquivos particular de origem) e são notificados sobre informações básicas de mudança, como o tipo de mudança.
Rastreamento do bug #40105284 | Entrada do ChromeStatus.com
Vários mapas de importação
Atualmente, os mapas de importação precisam ser carregados antes de qualquer módulo ES, e só pode haver um único mapa de importação por documento. Isso os torna frágeis e potencialmente lentos para uso em cenários reais: qualquer módulo que seja carregado antes deles quebra o app inteiro e, em apps com muitos módulos, eles se tornam um recurso de bloqueio grande, já que o mapa completo de todos os módulos possíveis precisa ser carregado primeiro.
Esse recurso permite vários mapas de importação por documento, mesclando-os de maneira consistente e determinística.
Cabeçalhos de acesso ao armazenamento
Oferece uma maneira alternativa para que as in-line autenticadas aceitem cookies não particionados. Esses cabeçalhos indicam se os cookies não particionados são (ou podem ser) incluídos em uma determinada solicitação de rede e permitem que os servidores ativem as permissões de "acesso ao armazenamento" que já foram concedidas. Oferecer uma maneira alternativa de ativar a permissão "storage-access" permite o uso por recursos que não são iframes e pode reduzir a latência para incorporações autenticadas.
Rastreamento do bug #329698698 | Entrada do ChromeStatus.com | Especificação
Oferecer suporte à criação de ClipboardItem
com Promise<DOMString>
O ClipboardItem
, que é a entrada do método write()
da área de transferência assíncrona, agora aceita valores de string, além de Blobs no construtor. ClipboardItemData
pode ser um Blob, uma string ou uma promessa que é resolvida como um Blob ou uma string.
Rastreamento do bug #40766145 | Entrada do ChromeStatus.com | Especificação
WebAssembly Memory64
A proposta memory64 adiciona suporte a memórias lineares do WebAssembly com tamanho maior que 2^32 bits. Ele não oferece instruções novas, mas estende as instruções atuais para permitir índices de 64 bits para memórias e tabelas.
Entrada do ChromeStatus.com | Especificação
API Web Authentication: método PublicKeyCredential
getClientCapabilities()
O método getClientCapabilities()
PublicKeyCredential
permite determinar quais recursos da WebAuthn são compatíveis com o cliente do usuário. O método retorna uma lista de recursos com suporte, permitindo que os desenvolvedores personalizem as experiências de autenticação e os fluxos de trabalho com base na funcionalidade específica do cliente.
Rastreamento do bug #360327828 | Entrada do ChromeStatus.com | Especificação
Algoritmo X25519 da API Web Cryptography
O algoritmo "X25519" fornece ferramentas para realizar o contrato de chaves usando a função X25519 especificada em [RFC7748]. O identificador do algoritmo "X25519" pode ser usado na interface SubtleCrypto para acessar as operações implementadas: generateKey, importKey, exportKey, deriveKey e deriveBits.
Bug de rastreamento #378856322 | Entrada do ChromeStatus.com | Especificação
Desempenho
Congelamento na economia de energia
Quando a Economia de energia está ativa, o Chrome congela um "grupo de contexto de navegação" que ficou oculto e em silêncio por mais de cinco minutos se qualquer subgrupo de frames de mesma origem exceder um limite de uso da CPU, a menos que:
- Ofereça funcionalidade de conferência de áudio ou vídeo, detectada por microfone, câmera ou captura de tela, janela ou guia, ou uma RTCPeerConnection com um RTCDataChannel "aberto" ou uma MediaStreamTrack "ao vivo";
- Controla um dispositivo externo (detectado com o uso de WebUSB, Web Bluetooth, WebHID ou Web Serial).
- Mantém um bloqueio da Web ou uma conexão IndexedDB que bloqueia uma atualização de versão ou uma transação em outra conexão.
- O congelamento consiste em pausar a execução. Ele é definido formalmente na API Page Lifecycle.
O limite de uso da CPU será calibrado para congelar aproximadamente 10% das guias em segundo plano quando o modo de economia de energia estiver ativo.
Rastreamento do bug #325954772 | Entrada do ChromeStatus.com
Exposição de renderTime
entre origens grosseiras no tempo de elementos e LCP (independentemente de Timing-Allow-Origin
)
O tempo dos elementos e as entradas de LCP têm um atributo renderTime
, alinhado com o primeiro frame em que uma imagem ou texto foi disponibilizado.
No momento, esse atributo é protegido para imagens de várias origens, exigindo um cabeçalho Timing-Allow-Origin
no recurso de imagem. No entanto, essa restrição é fácil de contornar (por exemplo, exibindo uma imagem de mesma origem e de origem cruzada no mesmo frame).
Como isso tem sido uma fonte de confusão, planejamos remover essa restrição e aumentar o tempo de renderização em 4 ms quando o documento não estiver isolado entre origens. Isso parece ser grosseiro o suficiente para evitar o vazamento de informações úteis no momento da decodificação sobre imagens de origem cruzada.
Rastreamento do bug #373263977 | Entrada do ChromeStatus.com | Especificação
Reverter responseStart
e apresentar firstResponseHeadersStart
Com a ativação dos 103 Early Hints, as respostas têm dois carimbos de data/hora:
- Quando as dicas antecipadas chegam (103)
- Quando os cabeçalhos finais chegam (por exemplo, 200)
- Quando o Chrome 115 lançou
firstInterimResponseStart
para permitir a medição desses dois carimbos de data/hora, também mudamos o significado deresponseStart
(usado pelo tempo para o primeiro byte (TTFB, na sigla em inglês)) para significar "os cabeçalhos finais". Isso criou um problema de compatibilidade da Web com navegadores e ferramentas que não fizeram uma mudança semelhante para essa métrica usada com frequência.
O Chrome 133 reverte essa mudança de responseStart
para resolver esse problema de compatibilidade e, em vez disso, introduz firstResponseHeadersStart
para permitir que os sites meçam o tempo até os cabeçalhos finais, mantendo a definição original de TTFB.
Rastreamento do bug #40251053 | Entrada do ChromeStatus.com | Especificação
Renderização e gráficos
WebGPU: formatos de vértice de um componente (e unorm8x4-bgra)
Adiciona formatos de vértice adicionais que não estavam presentes na versão inicial da WebGPU devido à falta de suporte ou versões antigas do macOS (que não têm mais suporte de nenhum navegador). Os formatos de vértice de um componente permitem que os aplicativos solicitem apenas os dados necessários, quando antes eles precisavam solicitar pelo menos duas vezes mais para tipos de dados de 8 e 16 bits. O formato unorm8x4-bgra facilita o carregamento de cores de vértice codificadas em BGRA, mantendo o mesmo sombreador.
Rastreamento do bug #376924407 | Entrada do ChromeStatus.com
Testes de origem
Desativar o congelamento na economia de energia
Esse teste de desativação permite que os sites desativem o comportamento de congelamento no modo de economia de energia que é enviado no Chrome 133.
Teste de origem | Bug de rastreamento #325954772 | Entrada do ChromeStatus.com | Especificação
Destino de referência para ARIA entre raízes
O alvo de referência é um recurso que permite usar atributos IDREF, como for
e aria-labelledby
, para se referir a elementos dentro do DOM de sombra de um componente, mantendo o encapsulamento dos detalhes internos do DOM de sombra. O objetivo principal desse recurso é permitir que a ARIA funcione em todos os limites da raiz da sombra.
Um componente pode especificar um elemento na árvore de sombra para atuar como "destino de referência". Quando o componente host é o destino de um IDREF, como o atributo for
de um rótulo, o destino de referência se torna o destino efetivo do rótulo.
A raiz shadow especifica o ID do elemento de destino dentro do shadow DOM. Isso é feito em JavaScript com o atributo referenceTarget
no objeto ShadowRoot
ou na marcação HTML usando o atributo shadowrootreferencetarget
no elemento <template>
.
Teste do Origin | Entrada do ChromeStatus.com
Suspensões de uso e remoções
Suspensão do limite da WebGPU maxInterStageShaderComponents
O maxInterStageShaderComponents limit
foi descontinuado devido a uma combinação de
fatores. A data de remoção pretendida no Chrome 135.
- 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 com diferenças sutis, eles podem se concentrar nomaxInterStageShaderVariables
mais apropriado e abrangente.
Remover a regra de cinco minutos <link rel=prefetch>
Anteriormente, quando um recurso era pré-buscado usando <link rel=prefetch>
, o Chrome
ignorava a semântica do cache (ou seja, max-age
e no-cache
) para o primeiro uso
em cinco minutos, para evitar a busca novamente. Agora, o Chrome remove esse caso especial
e usa a semântica normal do cache HTTP.
Isso significa que os desenvolvedores da Web precisam incluir cabeçalhos de armazenamento em cache apropriados
(Cache-Control ou Expires) para aproveitar os benefícios do <link rel=prefetch>
.
Isso também afeta o <link rel=prerender>
não padrão.
Rastreamento do bug #40232065 | Entrada do ChromeStatus.com
A página de boas-vindas do Chrome não é mais acionada pelas guias de execução inicial de preferências
A inclusão de chrome://welcome
na propriedade first_run_tabs
do
arquivo initial_preferences
não terá mais efeito. Ela foi removida porque é redundante com a experiência de primeira execução que é acionada em plataformas de
computador.