Chrome 134

Data de lançamento da versão estável:4 de março de 2025

A menos que indicado de outra forma, as mudanças a seguir se aplicam à versão do canal estável do Chrome 134 para Android, ChromeOS, Linux, macOS e Windows.

HTML e DOM

Elemento <select> personalizável

O <select> personalizável permite que os desenvolvedores assumam o controle total da renderização de elementos <select> adicionando a propriedade e o valor CSS appearance: base-select.

Esse recurso depende da flag SelectParserRelaxation, que muda o analisador de HTML para permitir mais tags na tag <select>.

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

Selecionar a flexibilização do analisador

Essa mudança faz com que o analisador de HTML permita mais tags em <select> além de <option>, <optgroup> e <hr>.

Esse recurso é bloqueado pela política temporária (SelectParserRelaxationEnabled). Esse é um período de transição temporário, e a política vai deixar de funcionar no Chrome 141.

Se você estiver com problemas que acredita serem causados por essa mudança, há um teste de origem reversa para desativar a flexibilização do analisador.

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

Dispensa da luz da caixa de diálogo

Um dos recursos interessantes da API Popover é o comportamento de dispensa leve. Esse comportamento agora faz parte de <dialog>, com um novo atributo closedby que controla o comportamento:

  • <dialog closedby="none">: nenhuma caixa de diálogo é fechada pelo usuário.
  • <dialog closedby="closerequest">: pressionar Esc (ou outro gatilho de fechamento) fecha a caixa de diálogo.
  • <dialog closedby="any">: clicar fora da caixa de diálogo ou pressionar Esc fecha a caixa de diálogo. Semelhante ao comportamento de popover="auto".

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

CSS

Herança de destaque do CSS

Com a herança de destaque do CSS, as pseudoclasses de destaque do CSS, como ::selection e ::highlight, herdam as propriedades pela cadeia de destaque de pseudoelementos, em vez da cadeia de elementos. O resultado é um modelo mais intuitivo para herança de propriedades em destaques.

Entrada do ChromeStatus.com | Especificação

PWA

Subtítulo do documento (corrigir títulos de apps PWA)

Esse recurso permite especificar informações complementares sobre a janela atual de um PWA instalado em execução. Ele adiciona um subtítulo à página para fornecer informações contextuais exibidas na barra de título da janela. Isso substitui o texto contido no elemento de título HTML.

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

Os links da Web direcionam automaticamente os usuários para os apps instalados. Para alinhar melhor as expectativas dos usuários em relação às experiências instaladas, o Chrome facilita a alternância entre o navegador e os apps da Web instalados. Quando o usuário clica em um link que pode ser processado por um app da Web instalado, ele é aberto nesse app. Os usuários podem mudar esse comportamento nas configurações do app da Web instalado. Os desenvolvedores podem controlar esse comportamento com a propriedade de manifesto launch_handler e consultar esta documentação para desenvolvedores para mais informações sobre como a vinculação profunda funciona com apps da Web instalados.

Entrada do ChromeStatus.com

Desempenho

Document-Policy: expect-no-linked-resources

O ponto de configuração expect-no-linked-resources na política de documentos permite que um documento sugira ao agente do usuário que ele otimize melhor a sequência de carregamento, como não usar o comportamento de análise especulativa padrão.

Os user agents implementaram a análise especulativa de HTML para buscar especulativamente recursos presentes na marcação HTML, a fim de acelerar o carregamento da página. Para a grande maioria das páginas da Web que têm recursos declarados no marcador de elementos HTML, a otimização é benéfica, e o custo pago para determinar esses recursos é uma boa troca. No entanto, os cenários a seguir podem resultar em uma troca de desempenho subótimo em relação ao tempo explícito gasto analisando HTML para determinar subrecursos a serem buscados:

  • Páginas que não têm recursos declarados no HTML.
  • Páginas HTML grandes com cargas mínimas ou nenhuma carga de recursos que poderiam controlar explicitamente os recursos de pré-carregamento usando outros mecanismos de pré-carregamento disponíveis.

A política de documentos expect-no-linked-resources sugere ao user agent que ele pode escolher otimizar o tempo gasto na determinação do subrecurso.

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

Gerenciamento de recursos explícito (assíncrono)

Esses recursos abordam um padrão comum no desenvolvimento de software em relação à duração e ao gerenciamento de vários recursos (por exemplo, memória e E/S). Esse padrão geralmente inclui a alocação de um recurso e a capacidade de liberar recursos críticos de forma explícita.

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

Gerenciamento de recursos explícito (sincronização)

Esses recursos abordam um padrão comum no desenvolvimento de software em relação à duração e ao gerenciamento de vários recursos (por exemplo, memória e E/S). Esse padrão geralmente inclui a alocação de um recurso e a capacidade de liberar recursos críticos de forma explícita.

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

A API console.timeStamp foi ampliada para oferecer suporte a medições e opções de apresentação

A API console.timeStamp() foi estendida de forma compatível com versões anteriores para oferecer um método de alto desempenho para instrumentar aplicativos e exibir dados de tempo no painel Performance nas Ferramentas do desenvolvedor.

As entradas de tempo adicionadas com a API podem ter um carimbo de data/hora personalizado, duração e opções de apresentação (faixa, swimlane e cor).

Entrada do ChromeStatus.com | Especificação

APIs Web

Permitir a leitura de grupos de interesse no objeto de armazenamento compartilhado

Adiciona um método interestGroups() ao worklet de armazenamento compartilhado para retornar os grupos de interesse da API Protected Audience associados ao proprietário da origem de armazenamento compartilhado, com alguns metadados adicionais.

Essa API oferece ao comprador da API Protected Audience uma imagem melhor do que está acontecendo com os usuários, permitindo relatórios de agregação particular.

Entrada do ChromeStatus.com

Recurso de relatórios de atribuição: remoção do limite de relatórios agregáveis quando o ID do contexto do acionador não é nulo

Essa mudança é baseada no feedback do autor da chamada da API e na necessidade de medir um número maior de eventos de conversão para determinados fluxos de usuários.

No momento, a API tem um limite que permite gerar até 20 relatórios agregáveis por registro de origem, o que é restritivo para casos em que um usuário pode ter uma jornada mais longa. Essa mudança remove o limite de relatórios agregáveis quando um ID de contexto do acionador é fornecido como parte do registro. A remoção desse limite é restrita apenas quando o ID do contexto do acionador é especificado, porque, quando isso acontece, a API aplica uma taxa maior de relatórios nulos, o que ajuda a proteger contra vazamentos de informações entre sites por meio de contagens de relatórios.

Além disso, os relatórios agregáveis ainda são limitados por outros limites que restringem a quantidade total de informações que podem ser medidas, como o orçamento de contribuição L1 (65.536) por origem e o limite de taxa de atribuição.

Entrada do ChromeStatus.com

Mitigações de rastreio por redirecionamento no cache HTTP

As mitigações de rastreio por redirecionamento para o cache HTTP são uma extensão do comportamento de rastreio anti-redirecionamento. Ele remove o requisito de que um site de rastreamento suspeito precisa ter realizado o acesso ao armazenamento para ativar as mitigações de rastreamento de rejeição.

A solução proposta inicialmente pelo Chrome para mitigação do acompanhamento de rejeições é acionada quando um site acessa o armazenamento do navegador (por exemplo, em cookies) durante um fluxo de redirecionamento. No entanto, os rastreadores de rejeição podem contornar sistematicamente essas mitigações usando o cache HTTP para preservar os dados. Ao relaxar as condições de acionamento para mitigações de rastreamento de rejeição, o navegador poderá detectar rastreadores de rejeição usando o cache HTTP.

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

Detecção no dispositivo com LLM de notificações abusivas no Android

O objetivo deste lançamento é ocultar o conteúdo de notificações suspeitas de abuso. O usuário terá as opções de dispensar, mostrar a notificação ou cancelar a inscrição na origem. Essa detecção é feita por um modelo no dispositivo.

Entrada do ChromeStatus.com

OffscreenCanvas getContextAttributes

Adicione a interface getContextAttributes de CanvasRenderingContext2D a OffscreenCanvasRenderingContext2D.

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

API Private Aggregation: limites de contribuição por contexto para autores de chamada do Shared Storage

Permite que os autores de chamadas do Shared Storage personalizem o número de contribuições por relatório de agregação privada.

Esse recurso permite que os autores de chamadas do Shared Storage configurem limites de contribuição por contexto com um novo campo, maxContributions. Os autores da chamada definem esse campo para substituir o número padrão de contribuições por relatório. Números maiores e menores são permitidos. O Chrome aceita valores de maxContributions entre 1 e 1.000. Valores maiores são interpretados como 1.000.

Devido ao padding, o tamanho do payload de cada relatório será aproximadamente proporcional ao número de contribuições escolhido por relatório. Esperamos que a ativação de relatórios maiores aumente o custo de operação do serviço de agregação.

Os autores de chamadas da API Protected Audience não serão afetados por esse recurso. No entanto, planejamos adicionar suporte à personalização do número de contribuições para os relatórios da API Protected Audience em recursos futuros.

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

Suporte à API Web Locks na Shared Storage

Integra a API Web Locks à Shared Storage. Isso evita cenários como quando a medição de alcance entre sites pode resultar em relatórios duplicados devido às possíveis condições de disputa na lógica de get() e set().

Essa mudança:

  • Introduz navigator.locks.request no ambiente de worklet.
  • Introduz a opção { withLock: <resource>} em todos os métodos de modificador.
  • Introdução de um método de modificação em lote: sharedStorage.batchUpdate(methods, options). Esse método, com a opção withLock, permite que vários métodos de modificador sejam executados de forma atômica, possibilitando casos de uso em que um site precisa manter a consistência ao atualizar dados organizados em várias chaves.

Rastreamento do bug #373899210 | Entrada do ChromeStatus.com

Renderização e gráficos

Suporte a ImageSmoothingQuality no PaintCanvas

Adição de suporte ao atributo imageSmoothingQuality na tela de pintura Assim, você pode escolher entre qualidade ou desempenho ao redimensionar imagens. Há três opções no total para imageSmoothingQuality: low, medium e high.

Rastreamento de bugs #None | Entrada do ChromeStatus.com | Especificação

Subgrupos da WebGPU

Adiciona a funcionalidade de subgrupo à WebGPU. As operações de subgrupos executam operações de SIMT para fornecer comunicação e compartilhamento de dados eficientes entre grupos de invocações. Essas operações podem ser usadas para acelerar aplicativos, reduzindo a sobrecarga de memória gerada pela comunicação entre invocações.

Entrada do ChromeStatus.com | Especificação

Testes de origem

API Digital Credential

Os sites podem e recebem credenciais de apps de carteiras para dispositivos móveis por vários mecanismos, como processadores de URL personalizados e leitura de código QR. Esse recurso permite que os sites solicitem informações de identidade das carteiras usando o sistema IdentityCredential CredMan do Android. Ele é extensível para oferecer suporte a vários formatos de credencial (por exemplo, ISO mDoc e credencial verificável do W3C) e permite o uso de vários apps de carteira. Estamos adicionando mecanismos para ajudar a reduzir o risco de abuso de identidade no ecossistema.

O teste de origem, a partir do Chrome 134, adiciona suporte a essa API na plataforma de computador, em que o Chrome no computador vai se comunicar com segurança com a carteira digital no smartphone Android para buscar as credenciais solicitadas.

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

Teste de descontinuação para SelectParserRelaxation

Este é um teste de descontinuação, que reativa o comportamento antigo do analisador para analisar tags <select>. Nesse comportamento antigo, o conteúdo sem suporte era descartado silenciosamente e não era incluído no conteúdo do DOM abaixo de <select>. Esse teste pode ser usado caso o novo comportamento ativado no Chrome 135 quebre um site.

Teste do Origin | Entrada do ChromeStatus.com

Suspensões de uso e remoções

Remover restrições de áudio não padrão do getUserMedia

O Blink é compatível com várias restrições não padrão com prefixo goog para getUserMedia desde algum tempo antes de as restrições serem padronizadas corretamente.

O uso diminuiu significativamente de ~0,000001% para 0,0009% (dependendo da restrição), e algumas delas nem têm efeito devido a mudanças na pilha de captura de áudio do Chromium. Em breve, nenhuma delas vai ter efeito devido a outras mudanças futuras.

Não esperamos nenhuma regressão importante devido a essa mudança. Os apps que usam essas restrições vão continuar funcionando, mas vão receber áudio com as configurações padrão, como se nenhuma restrição tivesse sido transmitida. Eles podem migrar para restrições padrão.

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