Chrome 124

Salvo indicação em contrário, as mudanças a seguir se aplicam à versão do canal estável do Chrome 124 para Android, ChromeOS, Linux, macOS e Windows. Saiba mais sobre os recursos listados aqui pelos links fornecidos ou na lista em ChromeStatus.com. O Chrome 124 está estável desde 16 de abril de 2024. Faça o download da versão mais recente em Google.com para computador ou na Google Play Store para Android.

Quer apenas os destaques? Confira Novidades no Chrome 124.

Alterações no navegador e Ferramentas para desenvolvedores

Instalação universal

Torne qualquer página instalável, mesmo as que não atendem aos critérios atuais de instalação do PWA.

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 poderão focar o conteúdo recortado usando a tecla Tab e as teclas 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.

Roláveis focalizáveis do teclado | Bug 40113891 de rastreamento | Entrada em ChromeStatus.com | Especificações

Solicitação de permissões para a API Web MIDI

Esse recurso controla o acesso à API Web MIDI por trás de uma solicitação de permissões. Antes, o uso de mensagens SysEx com a API Web MIDI exige uma permissão explícita do usuário.A partir do Chrome 125, todo o acesso à API Web MIDI exige uma permissão do usuário.

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.

Bug 40063295 de rastreamento | Entrada em ChromeStatus.com | Especificações

HTML e DOM

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 capacidade por elemento, por documento ou subdocumento.

Entrada em ChromeStatus.com | Especificações

Carregando

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.

Entrada em ChromeStatus.com | Especificações

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.

Entrada em ChromeStatus.com | Especificações

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.

Bug 40252001 de rastreamento | Entrada em ChromeStatus.com | Especificações

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.

Entrada em ChromeStatus.com | Especificações

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.

Como proteger o tráfego do Chrome com um Kyber KEM híbrido | Bug 40910498 de rastreamento | Entrada em ChromeStatus.com | Especificações

Mídia

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.

Rastreamento de bug no 324276557 | Entrada em ChromeStatus.com | Especificações

APIs Web

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.

WebSocketStream: integração de streams com a API WebSocket | Bug 41470216 de rastreamento | Entrada em ChromeStatus.com | Especificações

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.

Entrada em ChromeStatus.com | Especificações

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 origem de loops await...of.

Erro de rastreamento 40612900 | Entrada em ChromeStatus.com | Especificações

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.

Rastreamento do bug no 41495176 | Entrada em ChromeStatus.com | Especificações

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 Document picture-in-picture que, quando definido como verdadeiro, indica ao navegador que ele não pode 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.

Documentação do picture-in-picture do documento | Entrada em ChromeStatus.com | Especificação

Renderização e gráficos

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>.

Entrada em ChromeStatus.com | Especificações

WebGPU: suporte a ServiceWorker e SharedWorker

O suporte ao ServiceWorker e ao 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.

Rastreamento do bug no 41494731 | Entrada em ChromeStatus.com | Especificações

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. Ela pode ser usada até o Chrome 134, válida 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.

Teste de origem | Bug 40268638 de rastreamento | Entrada em ChromeStatus.com | Especificações

Descontinuações e remoções

Esta versão do Chrome apresenta as descontinuações e remoções a seguir. Acesse ChromeStatus.com para conferir listas de descontinuações e remoções.

Não há descontinuações ou remoções no Chrome 124.

Leia mais

Quer saber mais? Confira estes recursos adicionais.