Chrome 124 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 124 está na versão Beta desde 20 de março 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 dois novos recursos CSS.

CSSImportRule.styleSheet

A CSSImportRule.styleSheet agora é anulável. O atributo styleSheet em CSSImportRule poderá ser nulo se não houver folha de estilo CSS associada.

CSSKeyframesRule.length

Expõe o atributo length de CSSKeyframesRule. As interfaces que oferecem suporte a propriedades indexadas precisam definir um atributo do tipo inteiro chamado length.

HTML

Nesta versão, adicionamos dois novos recursos HTML.

O atributo writingsuggestions

Os navegadores estão começando a oferecer sugestões de escrita aos usuários à medida que eles digitam em vários campos editáveis na Web. Embora isso geralmente seja útil para os usuários, há casos em que os desenvolvedores podem querer desativar a assistência de gravação fornecida pelo navegador, como extensões ou sites que oferecem funcionalidades semelhantes próprias.

O novo atributo writingsuggestions tem valores de true ou false que permitem que os desenvolvedores ativem ou desativem as sugestões de gravação fornecidas pelo navegador. O estado do atributo de um elemento também pode ser herdado de elementos ancestrais, permitindo que os desenvolvedores controlem essa funcionalidade em escala por elemento, por documento ou subdocumento.

Contêineres de rolagem com foco no teclado

Melhora a acessibilidade, tornando os contêineres de rolagem focalizáveis usando a navegação de foco sequencial. Antes dessa mudança, a tecla Tab não foca os controles de rolagem, a menos que tabIndex seja explicitamente definido como 0 ou mais.

Ao tornar os controles de rolagem focalizáveis por padrão, os usuários que não podem (ou não querem) usar um mouse vão poder focar o conteúdo recortado usando as teclas Tab e de seta do teclado. Esse comportamento será ativado somente se o botão de rolagem não tiver filhos focalizáveis do teclado.

Esse recurso será lançado aos poucos a partir do Chrome 124 e estará disponível para todos os usuários a partir do Chrome 125. Saiba mais sobre controles de rolagem focalizáveis do teclado.

APIs Web

Adições à API Attribution Reporting

Os recursos foram adicionados à API Attribution Reporting para criar outras funções de depuração com suporte à análise de relatórios de depuração de falhas, melhorar a ergonomia da API oferecendo suporte a um campo para especificar a plataforma de registro preferida e melhorar a privacidade.

Picture-in-picture do documento: adicionar opção para ocultar o botão "Voltar à guia"

Isso adiciona um novo parâmetro (disallowReturnToOpener) à API picture-in-picture do documento que, quando definido como verdadeiro, indica ao navegador que não é necessário mostrar um botão na janela picture-in-picture para que o usuário volte à guia que o abre.

Embora ter um botão para retornar à guia de abertura sempre faça sentido no caso do vídeo picture-in-picture (o stream de vídeo pode ser retornado ao elemento de vídeo na guia inicial), esse nem sempre é o caso para experiências picture-in-picture de documentos. Isso dá aos desenvolvedores mais controle sobre a experiência do usuário quando determinam que esse botão não faz sentido para o caso de uso.

Saiba mais na documentação do picture-in-picture do documento.

Bloqueio de renderização de documentos

Esse recurso permite que os autores bloqueiem a renderização de um documento até que o conteúdo essencial seja analisado, garantindo uma primeira exibição consistente em todos os navegadores. Sem esse recurso, o estado da primeira exibição depende da heurística do rendimento do analisador, que pode variar entre os navegadores.

Isso é especialmente importante para transições de visualização em que o estado do DOM analisado no primeiro frame pode mudar drasticamente a transição criada.

Esse recurso implementa uma sintaxe <link rel=expect href="#id">, que permite que um elemento do link faça referência a outro elemento esperado na página. A renderização é bloqueada até que o elemento esperado seja totalmente analisado. Isso substitui a implementação anterior de um atributo HTML que permite que todo o documento seja bloqueado pela renderização.

jitterBufferTarget atributo

O atributo jitterBufferTarget permite que os aplicativos especifiquem uma duração desejada em milissegundos de mídia para que o buffer de instabilidade RTCRtpReceiver seja retido. Isso influencia a quantidade de armazenamento em buffer feito pelo user agent, o que, por sua vez, afeta as retransmissões e a recuperação de perda de pacotes. Alterar o valor desejado permite que os apps controlem o equilíbrio entre o atraso de reprodução e o risco de ficar sem frames de áudio ou vídeo devido à instabilidade da rede.

pageswap evento

O evento pageswap é disparado no objeto da janela de um documento quando uma navegação substitui o documento por um novo. O evento fornece informações de ativação sobre a navegação (type, NavigationHistoryEntry para o novo documento).

Se a navegação tiver uma transição de visualização entre documentos, o evento será enviado antes de capturar o estado do documento antigo. Isso permite que o desenvolvedor configure o estado antigo capturado para a transição com base nas informações de ativação da navegação e no estado visual atual do documento antigo.

Cabeçalho da solicitação HTTP priority

Isso adiciona o cabeçalho priority a todas as solicitações HTTP com as informações de prioridade no momento do envio.

A RFC 9218 (esquema de priorização extensível para HTTP) define um cabeçalho de solicitação HTTP priority a ser usado para sinalizar a prioridade de solicitação para origens (e intermediários). Ele também define processos de negociação e frames no nível do protocolo para HTTP/2 e HTTP/3 para transportar as mesmas informações de prioridade.

O cabeçalho só pode sinalizar a prioridade inicial de um recurso quando ele foi solicitado pela primeira vez, enquanto os mecanismos baseados em frames permitem modificar a prioridade após o fato.

O cabeçalho pode operar de ponta a ponta nos servidores de origem (e fornecer um mecanismo para que a origem substitua a prioridade se reconhecida por intermediários), enquanto os frames se limitam a operar em um nível de link.

Esse recurso serve especificamente para oferecer suporte ao esquema de priorização baseada em cabeçalho.

Permissão de acesso à rede privada para relaxar conteúdo misto

Para estabelecer conexões com dispositivos em uma rede local que não têm nomes globalmente exclusivos e, portanto, não podem receber certificados TLS, esse recurso introduz uma nova opção a fetch() para declarar a intent de um desenvolvedor de se comunicar com esse dispositivo. Isso inclui um novo recurso controlado por política para bloquear o acesso de cada site a esse recurso e novos cabeçalhos para que a resposta de simulação do servidor forneça mais metadados.

Dica do cliente Sec-CH-UA-Form-Factors

Essa dica fornece informações ao servidor sobre os formatos do user agent. Ela retorna um ou mais dos seguintes valores de formato:

  • Computador: um user agent executado em um computador pessoal.
  • Setor automotivo: um user agent incorporado em um veículo, em que o usuário pode ser responsável por operar o veículo e não conseguir acessar detalhes pequenos.
  • Dispositivo móvel: dispositivo pequeno orientado ao toque, geralmente transferido para a pessoa do usuário.
  • Tablet: um dispositivo sensível ao toque maior do que "dispositivo móvel" e que normalmente não é carregado na pessoa de um usuário.
  • XR: dispositivos imersivos que ampliam ou substituem o ambiente ao redor do usuário.
  • EInk: um dispositivo caracterizado por atualizações de tela lentas e resolução limitada ou nenhuma cor.
  • Relógio: um dispositivo móvel com uma tela pequena (normalmente com menos de duas polegadas), realizado de uma maneira que o usuário possa olhar para ele rapidamente.

setHTMLUnsafe e parseHTMLUnsafe

Os métodos setHTMLUnsafe e parseHTMLUnsafe permitem que o DOM de sombra declarativa seja usado no JavaScript. Esses métodos também oferecem uma maneira mais fácil de analisar imperativamente o HTML no DOM, em comparação com innerHTML ou DOMParser.

Atualizações na API Shared Storage

Esta atualização adiciona suporte à execução de worklets de origem cruzada sem precisar criar um iframe.

API Streams: iteração assíncrona ReadableStream

As APIs de fluxos fornecem primitivos onipresentes e interoperáveis para criar, compor e consumir fluxos de dados. Essa mudança adiciona suporte ao protocolo iterável assíncrono à API ReadableStream, permitindo que fluxos legíveis sejam usados como fonte de loops await...of.

SVG context-fill e context-stroke

Implementa um recurso SVG que permite usar as palavras-chave context-fill e context-stroke ao especificar as propriedades de preenchimento e traço. Isso afeta apenas as subárvores do SVG que são instanciadas com um elemento <use> e os elementos <marker> que são instanciados usando a propriedade marker em um elemento <path>. Nessas circunstâncias, context-fill e context-stroke são resolvidos para o valor das propriedades fill e stroke no <use> ou <path>.

WebGPU: suporte a ServiceWorker e SharedWorker

O suporte para ServiceWorker e SharedWorker foi adicionado à WebGPU, alinhando-se aos recursos WebGL existentes.

Os service workers ativam os recursos off-line e o processamento em segundo plano para a WebGPU. Isso significa que os apps da Web com muitos gráficos ou as extensões do Chrome podem armazenar recursos em cache e realizar cálculos mesmo quando o usuário não está interagindo ativamente com a página.

Os workers compartilhados permitem que várias guias ou contextos de extensão coordenem e compartilhem recursos da WebGPU. Isso leva a uma performance mais suave e um uso mais eficiente do hardware gráfico do usuário.

API WebSocketStream

A API WebSocket fornece uma interface JavaScript para o protocolo WebSocket RFC6455. Embora tenha sido bem executado, ele é estranho do ponto de vista da ergonomia e não tem o recurso importante de pressão de retorno. O objetivo da API WebSocketStream é resolver essas deficiências integrando os streams WhatWG com a API WebSocket.

Saiba mais em WebSocketStream: como integrar streams com a API WebSocket.

Encapsulamento de chave X25519Kyber768 para TLS

Protege 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 chaves híbrido X25519 e Kyber768 baseado em um padrão IETF. Essa especificação e esse 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.

Saiba mais em Como proteger o tráfego do Chrome com o Kyber KEM híbrido (em inglês).

Testes de origem em andamento

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

Teste de descontinuação para eventos de mutação

Eventos de mutação, incluindo DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeRemovedFromDocument, DOMNodeInsertedIntoDocument e DOMCharacterDataModified, podem prejudicar o desempenho da página e também aumentar significativamente a complexidade da adição de novos recursos à Web. Essas APIs foram descontinuadas da especificação em 2011 e substituídas (em 2012) pela API Mutation Observer, que tem um comportamento muito melhor.

O suporte a eventos de mutação será desativado por padrão a partir do Chrome 127 por volta de 30 de julho de 2024. É preciso migrar o código para a API Mutation Observer antes dessa data para evitar falhas no site. Se você precisar de mais tempo, inscreva-se no teste de descontinuação de eventos de mutação para reativar o recurso por tempo limitado em um determinado site. Esse recurso pode ser usado até o Chrome 134, até 25 de março de 2025.

Como alternativa, uma política corporativa MutationEventsEnabled também pode ser usada para a mesma finalidade, até o Chrome 134.

Inscreva-se no teste de descontinuação de eventos de mutação.

Descontinuações e remoções

Esta versão do Chrome apresenta as descontinuações e remoções a seguir. Acesse ChromeStatus.com para consultar listas de descontinuações planejadas, descontinuações atuais e remoções anteriores.

Esta versão do Chrome remove um recurso.

Remoção do alias "window-placement" da permissão e política de permissões "window-management"

Remove o alias "window-placement" da política de permissões "window-management". Isso faz parte de um esforço maior para renomear as strings com a desativação do uso e remoção da "window-placement" em algum momento. A mudança de terminologia melhora a longevidade do descritor à medida que a API Window Management evolui com o tempo.