Adições à API Screen Capture, interpolação de propriedades CSS grid-template e muito mais.
Salvo indicação em contrário, as mudanças descritas abaixo 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 107 está na versão Beta desde 29 de setembro de 2022. Baixe a versão mais recente em Google.com para computador ou na Google Play Store para Android.
Interpolação de propriedades grid-template do CSS
No CSS Grid, as propriedades grid-template-columns e grid-template-rows permitem que os desenvolvedores definam nomes de linhas e rastreiem o dimensionamento de colunas e linhas da grade, respectivamente. Graças aos nossos colaboradores da Microsoft, agora oferecemos suporte à interpolação para essas propriedades. Agora, os layouts de grade podem fazer transições suaves entre estados, em vez de se ajustar no ponto intermediário de uma animação ou transição.
Controles de compartilhamento de tela que preservam a privacidade
A API Screen Capture apresenta adições à API Media Capture and Streams atual para permitir que o usuário selecione uma tela ou parte dela (como uma janela) para capturar como um fluxo de mídia. Essa transmissão pode ser gravada ou compartilhada com outras pessoas na rede. Nesta versão Beta, alguns recursos novos foram adicionados à API.
DisplayMediaStreamConstraints.selfBrowserSurface
Dica que permite que aplicativos da Web instruam o navegador sobre se, ao chamar getDisplayMedia(), a guia atual deve ser excluída da lista de guias oferecidas ao usuário.
Isso ajuda a evitar a autocaptura acidental, quando os usuários escolhem sem querer a guia em que o app está sendo executado. Isso produz um efeito de salão de espelhos, confundindo os usuários e prejudicando as discussões com usuários remotos.
DisplayMediaStreamConstraints.surfaceSwitching
Adiciona uma opção para controlar programaticamente se o Chrome mostra um botão para alternar guias durante o compartilhamento de tela. Essa opção será transmitida para navigator.mediaDevices.getDisplayMedia().
O botão "Compartilhar esta guia" permite que os usuários troquem facilmente a guia que estão compartilhando sem precisar selecionar novamente a guia de videoconferência, clicar em um botão para iniciar o getDisplayMedia() de novo ou escolher uma nova guia em uma longa lista. Esse comportamento é exposto condicionalmente porque nem todos os aplicativos da Web conseguem lidar com ele.
MediaTrackConstraintSet.displaySurface
Quando getDisplayMedia() é chamado, o navegador oferece ao usuário uma opção de plataformas de exibição: guias, janelas ou monitores. Usando a restrição displaySurface, o aplicativo da Web agora pode sugerir ao navegador se ele prefere que um determinado tipo de superfície seja oferecido com mais destaque ao usuário.
Saiba como esses recursos ajudam a evitar o compartilhamento excessivo acidental.
Status de bloqueio da renderização no Resource Timing
Adiciona um campo a PerfomanceResourceTiming para indicar o status de bloqueio de renderização de um recurso. Atualmente, do ponto de vista do desenvolvedor, a única maneira de determinar quais recursos realmente bloqueiam a renderização é usar heurísticas complexas. Em vez disso, o novo campo forneceria um indicador direto sobre o mesmo.
Caracteres curinga em origens da política de permissões
Esse recurso adiciona suporte a caracteres curinga em políticas de permissões estruturadas como SCHEME://*.HOST:PORT (por exemplo, https://*.foo.com/), em que uma origem válida pode ser construída com SCHEME://HOST:PORT (por exemplo, https://foo.com/). Isso exige que HOST seja pelo menos eTLD+1 (um domínio registrável). Isso significa que https://*.bar.foo.com/ funciona, mas https://*.com/ não. Não será possível usar caracteres curinga na seção de esquema e porta, e https://*.foo.com/ não vai delegar a https://foo.com/. Antes, uma política de permissões poderia ser assim:
permissions-policy: ch-ua-platform-version=(self "https://foo.com" "https://cdn1.foo.com" "https://cdn2.foo.com")
Com esse recurso, você pode usar:
permissions-policy: ch-ua-platform-version=(self "https://foo.com" "https://*.foo.com")
Compatibilidade com o atributo rel em elementos <form>
Esse recurso adiciona o atributo rel aos elementos de formulário, o que impede que window.opener esteja presente em sites acessados por elementos de formulário que têm rel=noopener e evita que o cabeçalho referer seja enviado com rel=noreferrer.
Testes de origem
Esta versão do Chrome teve dois novos testes de origem.
API Declarative PendingBeacon
Uma API de beacon com estado que permite ao navegador controlar quando os beacons são enviados. Um beacon é um pacote de dados enviado a um servidor de back-end sem esperar uma resposta específica. Muitas vezes, é recomendável enviar esses dados no final da visita de um usuário a uma página, mas não há um bom momento para fazer essa chamada "send". Essa API delega o envio ao próprio navegador, para que ele possa oferecer suporte a beacons no descarregamento ou ocultação da página, sem que o desenvolvedor precise implementar chamadas de envio exatamente nos momentos certos.
Esse teste deve durar até o Chrome 109. Inscreva-se para o teste aqui.
Permissions-Policy: unload
Com esse recurso, as páginas podem desativar a execução de manipuladores de eventos de descarregamento. O objetivo é permitir que sites que removeram todos os manipuladores de descarregamento não adicionem novos por acidente. Isso vai ajudar os sites a migrar dos manipuladores de eventos de descarregamento e, assim, melhorar a taxa de acertos do BFCache.
Esse teste deve durar até o Chrome 109. Inscreva-se para o teste aqui.
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 conferir listas de suspensões de uso planejadas, atuais e remoções anteriores.
Esta versão do Chrome descontinua um recurso.
Expect-CT
Expect-CT é um cabeçalho HTTP que permitia que os sites ativassem a aplicação da Transparência de certificado antes que ela fosse aplicada por padrão. Ele também tem uma funcionalidade de geração de relatórios para ajudar os desenvolvedores a descobrir configurações incorretas de CT.
O cabeçalho HTTP Expect-CT foi projetado para ajudar na transição para a aplicação universal da Transparência de certificados (CT, na sigla em inglês), permitindo que sites de alto valor ativassem a aplicação ou o envio de relatórios da CT para melhorar a segurança antes que a CT fosse obrigatória (pelo Chrome) em todos os sites públicos. No entanto, o Expect-CT perdeu a utilidade. O Chrome agora exige CT em todos os sites públicos. Portanto, Expect-CT não tem mais valor de segurança. Nenhum outro navegador implementou Expect-CT, então a remoção não é um problema de interoperabilidade.