Chrome 117 Beta

Subgrade de grade CSS, suporte a animação de entrada e saída para CSS, agrupamento de matrizes, auxiliares de iterador e muito mais.

Salvo indicação em contrário, as mudanças descritas 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 em ChromeStatus.com. O Chrome 117 está na versão Beta desde 16 de agosto de 2023. 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 seis novos recursos CSS. As três primeiras propriedades fazem parte do trabalho de ativação de transições em propriedades discretas, que permitem animações de entrada e saída.

A regra de estilo @starting

Essa regra permite que os autores iniciem transições CSS na primeira atualização de estilo.

As transições CSS não acionam transições de estilos iniciais na primeira atualização de estilo de um elemento ou quando o tipo de exibição muda de none para algum outro tipo. Isso serve para evitar transições inesperadas dos estilos iniciais. Para iniciar uma transição desde a primeira atualização de estilo, agora é possível aplicar estilos de uma regra @starting-style. Por exemplo, o CSS a seguir inicia uma transição de cor de fundo de verde para verde na primeira atualização de estilo para um div:

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

A propriedade de sobreposição

A propriedade overlay permite que os desenvolvedores mantenham os elementos na camada superior para uma transição de saída. A propriedade de sobreposição é adicionada para indicar se um elemento está ou não na camada superior. Ela pode aceitar dois valores: none ou auto.

Propriedade de comportamento de transição do CSS

A propriedade CSS transition-behavior é uma extensão longa da propriedade transition que permite que propriedades discretas sejam usadas em transições. Ao especificar o valor de allow-discrete para o comportamento de transição, propriedades discretas agora vão iniciar animações e mudar do valor inicial para o valor final em 50% Para transições em que display: none e content-visibility: hidden são um dos valores iniciais ou finais, o valor visível vai ser usado durante toda a transição.

O valor da subgrade da grade CSS

O valor subgrid para grid-template-columns e grid-template-rows agora foi implementado no Chrome. Esse valor permite que uma grade aninhada use as faixas definidas no pai, em vez de criar uma nova definição de faixa para linhas, colunas ou ambas.

Quebra de texto CSS: bela

O valor de pretty para a propriedade text-wrap do CSS é otimizado para oferecer o melhor layout, em vez de velocidade. Ele é destinado ao corpo do texto e, portanto, espera várias linhas. Ao usar pretty, um desenvolvedor ativa um método de layout que pode ser mais lento do que wrap, o que otimiza a performance. A implementação atual no Chrome é otimizada para órfãos para evitar que uma única palavra seja exibida na parte de baixo de um parágrafo do texto.

No Chrome 117, teste esta demonstração do ajuste de texto: belo e veja como o valor altera a apresentação de texto.

container-intrinsic-size: suporte a nenhum automático

Esse recurso estende a sintaxe contain-intrinsic-size existente para incluir também auto && none.

APIs Web

Agrupamento de matrizes

O agrupamento de matrizes é uma operação extremamente comum, melhor exemplificada pela cláusula GROUP BY e pela programação MapReduce do SQL (que é melhor pensada em map-group-reduce). Com a combinação de dados em grupos, os desenvolvedores podem calcular conjuntos de dados de ordem superior, como a idade média de uma coorte ou os valores diários de LCP de uma página da Web. Esse recurso permite isso adicionando os métodos estáticos Object.groupBy e Map.groupBy. O método Object retorna um objeto simples, em que os grupos são chaves de propriedade. O método Map retorna um Map, em que as chaves podem ser valores arbitrários.

Limpar dicas do cliente pelo cabeçalho "Clear-Site-Data"

Os sites agora poderão limpar o cache de dicas do cliente usando Clear-Site-Data: "clientHints". Dicas do cliente também serão apagadas quando "cookies", "cache" ou "*" forem segmentados pelo mesmo cabeçalho. Isso ocorre porque se o usuário limpa os cookies nas dicas de cliente da interface já estão limpas, o cache de dicas do cliente é um cache e é consistente com os destinos de caracteres curinga, respectivamente.

Sintaxe de caractere curinga do cabeçalho "Clear-Site-Data"

Agora os sites poderão apagar todos os destinos de armazenamento ("cookies", "cache" e "armazenamento") enviando Clear-Site-Data: "*". No momento, o Chrome não oferece suporte à limpeza de "executionContexts", mas, se você adicioná-lo no futuro, qualquer cabeçalho direcionado a "*" os apagaria.

customElements.getName

O método customElements.getName() retorna o nome da tag da definição do elemento personalizado.

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.

Fazer com que o CaptureController seja derivado da interface EventTarget

A interface CaptureController permite manipular mais uma sessão de captura de tela. No futuro, espera-se que os eventos relacionados a uma sessão de captura sejam enviados nesse controlador. Para gerenciar listeners desses eventos, os métodos EventTarget são disponibilizados em CaptureController.

Tipo de entrega de PerformanceResourceTiming

A propriedade deliveryType de PerformanceResourceTiming retorna informações sobre como um recurso foi entregue. Por exemplo, recursos entregues do cache (atualmente expostos por transferSize) e navegações que foram pré-buscadas pela página anterior.

Verificação de estouro de portas em setters de URL

O valor da porta será verificado na configuração de url.port. Todos os valores que ultrapassarem o limite numérico de 16 bits não serão mais válidos. Por exemplo, o script a seguir se comporta de maneira diferente após a alteração:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

Antes da mudança, a saída é 65536. Após a mudança, a saída será 80.

API Private State Token

Essa é uma nova API para propagar sinais particulares limitados entre sites, sem usar identificadores persistentes entre sites, como cookies de terceiros. Os métodos antifraude que dependem de cookies de terceiros não funcionarão depois que esses cookies forem descontinuados. A API Private State Token não gera nem define sinais antifraude: isso cabe ao responsável próprio e aos emissores de token. Em vez disso, a API mantém a privacidade ao impor limites às informações transferidas nesses sinais. A API é baseada em uma variante do protocolo Privacy Pass, que está sendo padronizado pelo IETF. Pode ser considerado uma forma dos protocolos do cartão de privacidade exposta pela Web. A especificação da API vai ser atualizada para novas versões e tipos de tokens e vai ser atualizada de acordo com as especificações do grupo de trabalho do cartão de privacidade. As mudanças esperadas seriam nos protocolos criptográficos subjacentes e no código de emissão de tokens: não esperamos mudanças nas APIs Fetch de emissão e resgate para desenvolvedores. A API Private State Token era conhecida como API Trust Token. Ele foi renomeado para capturar com mais precisão a semântica subjacente e destacar os benefícios de privacidade para os usuários.

Analisador de host IPv6 incorporado compatível com URL padrão

O comportamento da análise do analisador de host IPv6 incorporado ao IPv4 será atualizado para seguir estritamente o padrão de URL da Web. As restrições introduzidas ao endereço IPv6 são:

  • O endereço IPv4 incorporado sempre consiste em quatro partes.
  • Endereços com menos de quatro partes, como http://[::1.2], não serão mais válidos. O recurso faz parte da Interoperabilidade de URLs de 2023.

URL: permitir "%00" como um caminho de URL válido

Atualmente, o Chrome considera um URL inválido se a parte do caminho dele contém "%00" (ou nulo), o que não é compatível com o padrão de URL. Por exemplo, o teste a seguir falha no Chrome, porque new URL(...) gera uma exceção de URL inválido.

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

De acordo com o URL Standard, qualquer sequência de caracteres ou bytes no caminho do URL não pode tornar o URL inválido. Essa mudança atualiza o Chrome para seguir esse padrão.

Controle de extensão de cabeçalho RTP do WebRTC

Estenda a API WebRTC RTCRtpTransceiver para oferecer controle sobre quais extensões de cabeçalho RTP são negociadas.

Quantizer por frame no VideoEncoder

Adição do "quantizer" VideoEncoderBitrateMode para VideoEncoder. Dessa forma, é possível especificar um parâmetro quantizer para cada frame com os codecs de vídeo AV1, VP9 e AVC.

Opção WebUSB exclusionFilters em requestDevice()

A opção exclusionFilters no navigator.usb.requestDevice() permite que os desenvolvedores da Web excluam alguns dispositivos do seletor do navegador. Ele pode ser usado para excluir dispositivos que correspondem a um filtro mais amplo, mas não são compatíveis.

Testes de origem em andamento

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

Transporte do dicionário de compressão com Brotli compartilhado

Esse recurso adiciona suporte para o uso de respostas anteriores designadas, como um dicionário externo para respostas HTTP de compactação em Brotli.

Inscreva-se no teste de origem CompressionDictionaryTransport.

Teste de descontinuação do WebSQL

O WebSQL está sendo removido do Chrome. Recomendamos que os sites que dependem dele sejam movidos para o SQLite via Wasm (link em inglês).

Com esse teste de descontinuação, os desenvolvedores que precisam de mais tempo para a migração vão poder continuar usando o WebSQL até o Chrome 123 (março de 2024). Inscreva-se para o período de teste de descontinuação do WebSQL](/origintrials/#/register_trial/494270059103911937).

Aplicativos da web com guias

Permite que as janelas de apps da Web tenham uma barra de guias, por exemplo, para editar vários documentos no mesmo app. Isso adiciona um novo modo de exibição com guias e um novo campo de manifesto para permitir personalizações na barra de guias.

Inscreva-se no teste de origem de apps da Web com guias.

Descontinuações e remoções

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

Esta versão do Chrome descontinua dois recursos.

Suspender o uso do evento de descarregamento

O Chrome 117 iniciará o processo de descontinuação do manipulador de eventos unload. Se o site usar essas informações, leia a postagem dedicada sobre a descontinuação do unload para saber mais.

Descontinuação das assinaturas do servidor TLS SHA-1

O Chrome está removendo o suporte para algoritmos de assinatura que usam SHA-1 para assinaturas do servidor durante o handshake de TLS. Isso não afeta o suporte a SHA-1 em certificados do servidor que já foram removidos ou em certificados do cliente que continuam compatíveis.

Esta versão do Chrome remove quatro recursos.

[WebRTC] Remoção de getStats() legado com base em callback

O RTCPeerConnection tem duas versões de getStats(): uma que obedece às especificações retornando o relatório resolvendo uma promessa e outra que não é padrão e retorna um relatório muito diferente usando um callback como o primeiro argumento. O baseado em callback foi removido.

Para mais informações sobre migração e o que fazer se você precisar de mais tempo, consulte o Guia de migração de getStats() legado.

Remoção do valor -1 para getStats datachannelIdentifier do WebRTC

A API WebRTC getStats expõe uma propriedade dataChannelIdentifier. Ele não fornecerá mais o valor "-1" nos casos em que as estatísticas forem consultadas antes de a conexão do canal de dados ser estabelecida. Em vez disso, o membro do dicionário será omitido.

Remoção de "unknown" (desconhecido) de encoderImplementation and decoderImplementation de WebRTC

A API WebRTC getStats expõe os nomes de implementação do codificador e do decodificador para vídeos de saída e de entrada. Ele não fornecerá mais o valor “unknown” nos casos em que as estatísticas forem consultadas antes de um frame de vídeo ser codificado ou decodificado. Em vez disso, o membro do dicionário será omitido.

Propriedade do CSS -webkit-highlight

Remova a propriedade CSS -webkit-highlight destinada a destacar texto, mas nunca padronizada. Ele não tem efeito visível no Chromium. Ele é analisado, mas nunca usado na renderização de conteúdo. A propriedade foi removida do WebKit em 2014, marcada como descontinuada no MDN e substituída recentemente pela especificação Pseudo de destaque do CSS.