Chrome 116 Beta

Trajetória de animação CSS, cache de avanço e retorno da API NotRestoredReason, Picture-in-Picture de documentos 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 116 está na versão Beta em 19 de julho 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 dois novos recursos CSS.

Trajetória de animação do CSS

A trajetória de animação permite que os autores posicionem qualquer objeto gráfico e o animem ao longo de um caminho especificado pelo desenvolvedor. Isso oferece diversas possibilidades de transformação novas e poderosas, como o posicionamento usando coordenadas polares (com a função ray()) em vez das coordenadas retangulares padrão usadas pela função translate() ou animar um elemento ao longo de um caminho definido. Isso facilita a definição de transições espaciais 2D complexas e bonitas. Um caminho pode ser especificado como circle(), ellipse(), rect(), inset(), xywh(), polygon(), ray() e url().

Animações de exibição e visibilidade do conteúdo

O Chrome 116 é compatível com as propriedades display e content-visibility nas animações de frame-chave. Esse suporte permite que os desenvolvedores criem animações de saída depois das quais o elemento se torna automaticamente display: none ou content-visibility: hidden, sem precisar programar qualquer JavaScript para processar essa chave após a conclusão da animação. Isso permite que as animações de saída dos elementos sejam adicionadas puramente em CSS.

APIs Web

AbortSignal.any()

Retorna um sinal que é cancelado quando qualquer um dos sinais de origem é cancelado. Os desenvolvedores podem usar isso para combinar origens de cancelamento independentes, por exemplo, tempos limite especificados com AbortSignal.timeout() e sinais associados a um AbortController, e transmiti-los para APIs assíncronas, como fetch().

Compatibilidade com BYOB para busca

A implementação do ReadableStream pelo Chrome é compatível com leitores de BYOB (traga seu próprio buffer) para streams de bytes legíveis. Agora, Response.body também é um stream de bytes legível em vez de um "padrão". Isso permite que a API Fetch seja usada com leitores BYOB, reduzindo a sobrecarga de coleta de lixo e as cópias, além de melhorar a capacidade de resposta dos usuários. Blob.stream() agora também se beneficia dessa otimização.

API NotRestoredReason de cache de avanço e retorno

A API NotRestoredReason vai informar a lista de motivos para uma página não ser veiculada do BFcache em uma estrutura de árvore de frames, usando a API PerformanceNavigationTiming.

Picture-in-picture do documento

O modo picture-in-picture do documento adiciona uma nova API para abrir uma janela sempre ativa que pode ser preenchida com HTMLElements arbitrários. Essa é uma expansão da API HTMLVideoElement existente que permite apenas que um HTMLVideoElement seja colocado em uma janela picture-in-picture (PiP). Isso permite que os desenvolvedores da Web ofereçam uma experiência de picture-in-picture melhor aos usuários.

Caracteres curinga expandidos nas origens da política de permissões

Os caracteres curinga de subdomínio em listas de permissões forneciam alguma flexibilidade valiosa, mas eram diferentes dos analisadores de caracteres curinga existentes e exigiam novos códigos e trabalhos de especificações. Essa intent vai reduzir a sobrecarga reutilizando partes da especificação da Política de Segurança de Conteúdo e permitindo scheme + wildcard domain e wildcard port na lista de permissões. Especificamente, essa intent adotaria a definição de origem do host e a origem do esquema em vez da origem na definição da lista de permissões, exigindo que a parte do caminho esteja vazia, já que as políticas de permissões se aplicam a origens correspondentes.

Pacote do FedCM: API Login Hint, API User Info e API RP Context

Essa atualização agrupada permite personalizações nos fluxos de login federados que usam a API Federated Credential Management (FedCM).

Com a API Login Hint, a parte confiável (RP) pode especificar uma dica sobre a conta de usuário que ela quer exibir na interface do FedCM. Isso é usado principalmente para fornecer uma UX melhor para os usuários recorrentes.

A API User Info permite que o provedor de identidade (IdP) busque as informações do usuário para personalizar a experiência de login de usuários retornantes, por exemplo, por meio de botões "Fazer login com o IdP" personalizados.

Com a API RP Context, o RP pode solicitar que a caixa de diálogo do FedCM substitua o título "Fazer login" por "Assinar", "Usar" ou "Continuar" para alinhar a intenção real do usuário.

Eventos de entrada/saída do mouse e do ponteiro não compostos

Torne a propriedade event.composed nos eventos mouseenter, mouseleave, pointerenter e pointerleave "false" para estar em conformidade com as especificações e corrigir lacunas de interoperabilidade As especificações de eventos de interface para eventos de mouse e de ponteiro definem esses eventos como não compostos. As duas especificações deixaram de usar as definições originais há alguns anos: https://github.com/w3c/uievents/pull/210 https://github.com/w3c/pointerevents/pull/461 Além de resolver a lacuna de interoperabilidade, essa alteração também corrige um envio duplo ou triplo incorreto desses eventos para um host do shadow DOM no Chromium.

Remover a herança do sandbox de document.open

No momento, as flags do sandbox do autor da chamada são aplicadas ao recebedor da chamada quando document.open segmenta uma janela diferente. Depois dessa mudança, não haverá mais o caso.

O relatório de CH crítico causou a reinicialização em NavigationTiming

Os sites podem indicar que uma dica de cliente específica é essencial para a página ao incluí-la em um cabeçalho de resposta HTTP Critical-CH. Isso acionará uma reinicialização da conexão se a dica listada no cabeçalho de resposta HTTP Critical-CH puder (mas não tiver sido) incluída na solicitação HTTP enviada inicialmente. Essa intent propõe adicionar readonly attribute DOMHighResTimeStamp criticalCHRestart; à interface PerformanceNavigationTiming.

Testes de origem em andamento

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

COOP: restringir propriedades

Cross-Origin-Opener-Policy é usado para cortar a relação entre pop-up e apps de abertura para aumentar a segurança. "restrict-properties" é um valor proposto que restringe a relação, em vez de interrompê-la completamente. Isso ativaria crossOriginIsolated quando pareado com COEP.

Inscreva-se para o teste de origem de restrição de propriedades COOP.

API FedCM Sign-in Status

A API IdP Sign-in Status da API Federated Credential Management (FedCM) permite que um provedor de identidade (IdP) sinalize ao navegador quando os usuários estão fazendo login/saída, para que o FedCM possa aumentar as propriedades de privacidade otimizando a UX.

Inscreva-se para o teste de origem do status de login do FedCM

API EditContext

A API EditContext simplifica o processo de integração de um app da Web com métodos avançados de entrada de texto, como escrita de formas VK, painéis de escrita à mão, reconhecimento de fala e composições do IME (editor de método de entrada, na sigla em inglês). Ela melhora a acessibilidade e o desempenho, além de desbloquear novos recursos para editores baseados na Web.

Fazer o registro para o teste de origem da API EditContext

Tempo para frames de animação longos

Essa é uma extensão de tarefas longas. Ele mede a tarefa junto com a atualização de renderização subsequente, adicionando informações como scripts de longa duração, tempo de renderização e tempo gasto com layout e estilo forçados, o que é conhecido como troca de layout.

Os desenvolvedores podem usar isso como um diagnóstico de "lentidão", que é medida pelo INP, encontrando as causas de congestionamento na linha de execução principal, que geralmente é a causa de uma INP ruim.

Inscreva-se para o teste de origem do Definição de Tempo para Frame de Animação Longa