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:
- O teste de desativação da desativação de rolagem com foco no teclado pode ser usado para desativar o recurso por um tempo limitado em um determinado site. Pode ser usado até o Chrome 132, até 18 de março de 2025.
- O
KeyboardFocusableScrollersEnabled enterprise policy
disponível no Chrome 127 pode ser usado para a mesma finalidade.
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
.