Chrome 130 Beta

Publicado em 18 de setembro de 2024

A menos que indicado de outra forma, as mudanças a seguir se aplicam à versão mais recente do canal Beta do Chrome para Android, ChromeOS, Linux, macOS e Windows. Saiba mais sobre os recursos listados aqui nos links fornecidos ou na lista do ChromeStatus.com. O Chrome 130 é Beta desde 18 de setembro de 2024. Faça o download da versão mais recente em Google.com para computadores ou na Google Play Store no Android.

CSS

Esta versão adiciona quatro novos recursos de CSS.

Consulta de árvore plana das consultas de contêiner do CSS

A especificação das consultas de contêiner foi alterada para procurar ancestrais de árvores planas. Essa mudança é relevante apenas para shadow DOM, em que um elemento agora pode encontrar contêineres não nomeados dentro de árvores shadow em que o elemento ou um dos antepassados dele estão inseridos, mesmo que a regra CSS não use ::part() ou ::slotted().

Aninhamento de CSS: a regra de declarações aninhadas

Mantém declarações simples seguindo uma regra aninhada no lugar delas, envolvendo essas declarações em regras CSSNestedDeclarations durante a análise.

Suporte completo e sem prefixo para box-decoration-break

Adição de suporte a box-decoration-break: clone para fragmentação inline (layout de linha) e fragmentação de bloco (paginação para impressão e multicoluna).

Anteriormente, no Chrome, apenas box-decoration-break:slice (o valor inicial) era compatível com a fragmentação de bloco, enquanto para a fragmentação inline, box-decoration-break:clone também era compatível, mas apenas quando usando a propriedade -webkit-box-decoration-break com prefixo.

Permitir mais pseudoelementos e pseudoclasses após ::part()

Os seletores de CSS que usam o pseudoelemento ::part() podem ter outros pseudoelementos de CSS (exceto ::part()) e muitos outros tipos de pseudoclasses de CSS depois deles. Os combinadores ainda não são permitidos após ::part(), e as pseudoclasses que dependem da estrutura de árvore não são permitidas.

Anteriormente, o Chrome só permitia um conjunto limitado de pseudoclasses e pseudoelementos após ::part(). Essa mudança permite todas as pseudoclasses e pseudoelementos que precisam ser permitidos. Isso significa que seletores como ::part(part-name):enabled e ::part(part-name)::marker agora são permitidos.

APIs Web

Recurso da API Attribution Reporting (escopos de atribuição)

Essa mudança é baseada no feedback da adtech e na necessidade de controles de filtragem mais detalhados antes do processo de atribuição. Ele permite que os autores da chamada de API especifiquem um campo chamado "esferas de atribuição", que será usado para filtrar antes de iniciar o fluxo de atribuição normal. Isso permite que os autores de chamadas de API controlem melhor a granularidade da atribuição e recebam relatórios de atribuição adequados quando há vários anunciantes ou campanhas que convertem no mesmo site de destino.

Recurso da API Attribution Reporting (melhoria na privacidade da chave de depuração)

Essa mudança ajuda a mitigar uma possível lacuna de privacidade com chaves de depuração.

Atualmente, a API permite que uma chave de depuração de origem ou de gatilho seja especificada se cookies de terceiros estiverem disponíveis e puderem ser definidos por chamadores de API. Se uma chave de depuração de origem ou acionador for especificada, ela será incluída no relatório de atribuição. Isso pode levar a um vazamento de privacidade se os cookies de terceiros forem permitidos apenas no site do editor ou do anunciante, mas não em ambos.

Essa mudança mitiga o problema ao exigir que as chaves de depuração da origem e do acionador sejam incluídas no relatório de atribuição apenas se estiverem presentes na origem e no acionador, o que significa que os cookies de terceiros estavam disponíveis no site do editor e do anunciante. Essa mudança vai ser aplicada aos relatórios de eventos e aos relatórios agregáveis.

Transporte de dicionário de compactação com Brotli compartilhado e Zstandard compartilhado

Esse recurso adiciona suporte ao uso de respostas anteriores designadas, como um dicionário externo para codificação de conteúdo, compactando respostas com Brotli ou Zstandard.

As empresas podem ter problemas de compatibilidade com a infraestrutura de rede empresarial que intercepta o tráfego HTTPS e é sensível a codificações de conteúdo desconhecidas. A política corporativa CompressionDictionaryTransportEnabled está disponível para desativar o recurso de transporte do dicionário por compactação.

scrollIntoView() suave simultâneo

O método scrollIntoView() com behavior: "smooth" permite que os desenvolvedores criem contêineres de rolagem que rolem para os descendentes com uma animação de rolagem suave. Esse recurso corrige a implementação da API pelo Chrome para que animações scrollIntoView em andamento não sejam canceladas por rolagens não relacionadas em outros contêineres de rolagem.

O recurso também corrige casos em que o Chrome não rola para a âncora de fragmento de uma página devido a uma scrollIntoView concorrente que é invocada quando a página é carregada.

Picture-in-picture do documento: adição de opção para ignorar o cache de limites da janela

Isso adiciona um novo parâmetro (preferInitialWindowPlacement) à API picture-in-picture do documento que, quando definido como verdadeiro, sugere ao agente do usuário que ele não deve tentar reutilizar a posição ou o tamanho do documento picture-in-picture anterior desse site ao abrir este.

Muitas vezes, uma janela picture-in-picture de documento é fechada e reaberta várias vezes no mesmo site, como ao mover uma videoconferência para o PiP e vice-versa. O agente do usuário pode reabrir a janela PiP no tamanho e local mais recentes, para que ela permaneça onde o usuário a moveu pela última vez e ofereça continuidade entre as janelas PiP. No entanto, se a nova janela não tiver relação semântica com a anterior, como uma nova chamada de vídeo, o desenvolvedor poderá usar esse parâmetro para fornecer uma dica ao agente do usuário de que essa janela pode ser aberta melhor na posição e no tamanho padrão.

Saiba como abrir a janela na posição e no tamanho padrão.

Melhorias nos relatórios de erros no IndexedDB para falhas de leitura de valores grandes

Mudança para relatórios de determinados casos de erro que foram informados anteriormente com um DOMException e a mensagem "Não foi possível ler um valor grande do IndexedDB".

O Chrome agora vai gerar uma DOMException com o nome "NotFoundError" quando o arquivo que contém os dados lidos por um IDBRequest estiver ausente do disco. Isso permite que os sites realizem a ação corretiva adequada quando ocorrer uma falha irrecuperável. As ações corretivas podem incluir a exclusão da entrada do banco de dados, a notificação do usuário ou a busca dos dados nos servidores.

Contêineres de rolagem com foco no teclado

Esse recurso faz com que os controles de rolagem sem filhos focalizáveis possam ser focalizados pelo teclado por padrão.

Essa é uma melhoria importante para tornar os controles de rolagem e o conteúdo deles mais acessíveis a todos os usuários. Leia mais sobre os benefícios em Scrollers com foco de teclado. Os controles de rolagem focalizáveis do teclado serão ativados por padrão a partir do Chrome 130. Se os sites precisarem de tempo para se ajustar ao novo recurso, há algumas opções:

Serviços de lances e leilões da Protected Audience

A API Protected Audience (antes conhecida como FLEDGE) é uma proposta do Sandbox de privacidade para atender casos de uso de remarketing e público-alvo personalizado. Ela foi projetada de modo que terceiros não consigam rastrear o comportamento de navegação do usuário entre sites.

Esse recurso, os serviços de lances e leilões da Protected Audience, descreve uma maneira de permitir que a computação da Protected Audience ocorra em servidores na nuvem em um ambiente de execução confiável, em vez de ser executada localmente no dispositivo do usuário. Transferir as computações para servidores em nuvem pode ajudar a otimizar o leilão de Protected Audience, liberando ciclos computacionais e largura de banda de rede para um dispositivo.

Suporte a URLs de esquema não especial

Antes, o analisador de URLs do Chrome não oferecia suporte a URLs não especiais. Ele analisava URLs não especiais como se tivessem um "caminho opaco", que não está alinhado com o padrão de URL. Agora, o analisador de URL do Chromium analisa URLs não especiais corretamente, seguindo o padrão de URL.

Acesse bit.ly/url-non-special para mais detalhes.

Builtins de string JavaScript do WebAssembly

Esse recurso expõe operações de string JavaScript comuns para importação no WebAssembly. Isso permite criar e manipular strings JavaScript da WebAssembly sem suporte a ela. Isso ainda permite uma performance semelhante às referências de string com suporte.

WebGPU: mesclagem de duas origens

Adiciona o recurso opcional de GPU "mistura de duas fontes", que permite combinar duas saídas de sombreador de fragmentos em um único framebuffer. Essa técnica é particularmente útil para aplicativos que exigem operações de mesclagem complexas, como aquelas baseadas nos modos de mesclagem Porter-Duff. Ao reduzir a necessidade de muitas mudanças no objeto de estado do pipeline, a combinação de duas fontes pode melhorar a performance e a flexibilidade.

Web Serial: atributo connected e eventos de conexão RFCOMM

Esse recurso adiciona um atributo booleano SerialPort.connected. O atributo retorna true se a porta serial estiver logicamente conectada. Para portas seriais com fio, uma porta é logicamente conectada se ela estiver fisicamente conectada ao sistema. Para portas seriais sem fio, uma porta está logicamente conectada se o dispositivo que hospeda a porta tiver conexões abertas com o host.

Antes, apenas as portas seriais com fio enviavam eventos de conexão e desconexão. Com esse recurso, as portas seriais Bluetooth RFCOMM enviam esses eventos quando a porta fica logicamente conectada ou desconectada.

O objetivo desse recurso é permitir que os aplicativos detectem quando uma porta serial RFCOMM Bluetooth está disponível sem abri-la.

Saiba mais em Atualizações de Bluetooth RFCOMM no Web Serial.

Testes de origem em andamento

No Chrome 130, você pode ativar os seguintes testes de origem.

API Language Detector

Uma API JavaScript para detectar o idioma do texto, com níveis de confiança.

WebAuthn attestationFormats

Suporte ao campo attestationFormats do nível 3 do WebAuthn.

O WebAuthn Nível 3 oferece suporte a um site que expressa uma preferência ordenada para formatos de atestado de credenciais no novo campo attestationFormats. Esse recurso oferece suporte a isso no Android, em que vários formatos podem ser aceitos por provedores de chaves de acesso.

Registre-se para o teste de attestationFormats da WebAuthn.

Suspensões de uso e remoções

Esta versão do Chrome apresenta as seguintes suspensões de uso e remoções. Acesse ChromeStatus.com para conferir listas de descontinuações planejadas, atuais e remoções anteriores.

Esta versão do Chrome remove um recurso.

Remover expectedImprovement em DelegatedInkTrailPresenter

O atributo expectedImprovement informa aos desenvolvedores da Web o quanto a API DelegatedInkTrails vai melhorar a latência atual de tinta. No entanto, esse atributo não vale o aumento da entropia de impressão digital.

Esta versão do Chrome descontinua um recurso.

O método requestAdapterInfo() não padrão do GPUAdapter foi descontinuado

O método assíncrono requestAdapterInfo() na WebGPU é redundante porque os desenvolvedores já podem receber GPUAdapterInfo de forma síncrona usando o atributo info GPUAdapter.