Chrome 122 Beta

Salvo indicação em contrário, 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 nos links fornecidos ou na lista em ChromeStatus.com. O Chrome 122 está na versão Beta desde 24 de janeiro de 2024. Faça o download da versão mais recente em Google.com para computador ou na Google Play Store no Android.

CSS

Nesta versão, adicionamos três novos recursos CSS.

As consultas de CSS @container com recursos incompatíveis nunca correspondem

Os seletores @container que contêm consultas sem suporte nunca selecionarão contêineres, o que significa que eles nunca serão correspondentes.

Isso significa que essa consulta nunca corresponderá a um contêiner, mesmo que haja um contêiner de tamanho correspondente à consulta de largura. Por exemplo, a consulta a seguir nunca será correspondida devido ao recurso desconhecido:

@container (width > 0px) or (unknown) {}

Essa é uma mudança recente na especificação para evitar problemas de compatibilidade com versões futuras.

Pseudoelemento ::backdrop do CSS herdado do elemento de origem

O pseudoelemento ::backdrop usado para herdar dos valores iniciais. Isso significa que ::backdrop não poderia usar valores de propriedade personalizada, a menos que especificado diretamente na regra ::backdrop. A especificação foi alterada para que ::backdrop herde do elemento de origem. Essa mudança faz com que a implementação do Chrome corresponda à nova especificação.

Condições do CSS supports() para @import

@import agora aceita uma condição supports(). Se a condição supports() não for correspondente, a importação não será buscada.

@import "scroll-driven-animations.css" supports(animation-timeline: auto);

As consultas de recursos a serem colocadas em supports() são as mesmas usadas com @supports

APIs Web

API Async Clipboard: ler HTML não corrigido

Adiciona uma opção unsanitized no método read() para receber o formato HTML não corrigido. A menos que os sites incluam essa propriedade, a leitura da área de transferência será limpa.

Por padrão, ao ler tipos MIME text/html usando a API assíncrona, o limpador é invocado para remover o conteúdo da marcação HTML devido a questões de segurança, e os estilos são inline no HTML. Isso leva a um payload HTML grande e perda de fidelidade do conteúdo HTML quando lido por desenvolvedores da Web ou apps para dispositivos móveis.

Não exclua objetos de tipo de arquivo em dataTransfer.clearData().

Atualiza o Chrome para corresponder à spec, que especifica que clearData() não afeta objetos de arquivo. Ele só exclui os objetos do tipo text.

FedCM: desconectar

Permite desconectar uma conta de login federada usando o site da parte confiável. Com a API de desconexão, uma parte confiável pode notificar o provedor de identidade que uma conta usada anteriormente foi desconectada e, portanto, usar essa conta novamente com o login federado exigiria o tratamento dela como uma nova conta.

Cancelamento do evento de mousedown interoperabilidade no iframe

Torne os destinos de eventos de mouse independentes do cancelamento do evento mousedown quando o ponteiro for arrastado para fora de um iframe. Quando o mouse é arrastado para fora de um iframe, todos os navegadores (incluindo o Chrome) enviam eventos mousemove e mouseup ao iframe. No entanto, se o evento mousedown for cancelado, o Chrome hoje manterá uma exceção antiga do WebKit de que os eventos mousemove e mouseup serão enviados para o frame externo. O WebKit removeu essa exceção no ano passado, e o Mozilla nunca mostrou esse comportamento nos últimos anos. Esse recurso vai remover a exceção apenas do Chrome para esse caso especial.

Auxiliares de iterador

Os auxiliares de iterador são novos métodos no protótipo de iterador para permitir o uso e o consumo gerais de iteradores.

MessagePort.onclose

Uma alteração na API Channel Messaging, que notifica um dos MessagePorts de que a outra porta foi desanexada. Ou seja, close() é chamado, um documento pendente é destruído ou a porta é coletada como lixo.

RTCRtpSender setParameters() para solicitar a geração de um frame-chave

Adiciona um segundo parâmetro opcional à chamada RTCRtpSender.setParameters do WebRTC que pode ser usado para solicitar que o codificador associado gere um frame-chave.

Definir métodos

Os métodos "set" são novos métodos, como união e interseção, adicionados à classe Set integrada do JavaScript.

API Storage Buckets

Os buckets de armazenamento permitem que os sites organizem os dados do dispositivo em "buckets" separados, permitindo que os user agents removam os dados agrupados independentemente dos dados que estão em outros buckets e permitindo que os sites gerenciem de maneira ergonômica dados relacionados semanticamente. Cada bucket de armazenamento pode conter dados associados a APIs de armazenamento estabelecidas, como IndexedDB e CacheStorage.

URLPattern: hasRegExpGroups

Permite verificar se um URLPattern usa um ou mais grupos de expressões regulares ECMAScript e, portanto, pode não ser adequado para uso em casos em que um mecanismo ECMAScript não está disponível (como algumas APIs planejadas futuras). A rigor, isso reflete algo que os desenvolvedores poderiam saber de qualquer maneira ao inspecionar o padrão, mas ter acesso à implementação dessa verificação pelo UA torna isso mais simples.

Armazenamento de buffer de desenho do WebGL

O WebGL permite a renderização em texturas e buffers de renderização de vários formatos de pixel diferentes. Por exemplo, codificada em 8 bits, de ponto flutuante e sRGB.

O buffer de desenho do WebGL (transmitido ao compositor) é de 8 bits por padrão. O recurso drawBufferStorage permite que o WebGL configure o formato de pixel desse buffer de desenho, permitindo que os desenvolvedores façam o seguinte.

  • Evite uma cópia extra ao converter a renderização para o formato de pixel de buffer de desenho padrão.
  • Desenhe conteúdo com mais de 8 bits de precisão.

Este último recurso desbloqueia vários outros aplicativos:

  • Um conteúdo com uma gama muito ampla de cores sem perda de precisão.
  • aplicações médicas que exigem mais de 8 bits de precisão.
  • Aplicativos de High Dynamic Range (quando disponíveis).

Encapsulamento de chave X25519Kyber768 para TLS

Proteja o tráfego TLS atual do Chrome contra futura criptoanálise quântica implantando o algoritmo de contrato de chave resistente ao quântico Kyber768. Este é um contrato de chave híbrido X25519 + Kyber768 com base em um padrão IETF. Essa especificação e lançamento estão fora do escopo do W3C. Esse contrato de chave será lançado como uma criptografia TLS e precisa ser transparente para os usuários.

Testes de origem em andamento

No Chrome 122, você pode ativar os novos testes de origem a seguir.

Extensões de escopo de apps da Web

O escopo do app da Web (definido pelo campo de escopo) só pode ser definido com um caminho de uma única origem. Ele é usado para determinar se o documento atual da janela de um app faz parte do app e quais URLs são permitidos em outros membros do manifesto.

Com o scope_extensions, os desenvolvedores podem expandir os comportamentos dos apps para incluir outras origens se houver contrato entre a origem principal de um app da Web e as origens associadas.

Faça sua inscrição para o teste de origem das extensões de escopo de apps da Web

Controle de superfície capturada

A API Captured Surface Control permite que os aplicativos da Web produzam eventos de roda em uma guia ou janela capturada e leiam ou gravem o nível de zoom de uma guia capturada.

Inscreva-se no teste de origem do Captured Surface Control.