Chrome 121 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 121 está na versão Beta desde 6 de dezembro de 2023. Faça o download da versão mais recente em Google.com para computador ou na Google Play Store para Android.

CSS

Nesta versão, adicionamos seis novos recursos CSS.

Herança de destaques do CSS

Com a herança de destaque do CSS, as pseudoclasses de destaques do CSS, como ::selection e ::highlight, herdam as propriedades pela cadeia de pseudodestaques, em vez da cadeia de elementos. O resultado é um modelo mais intuitivo para a herança de propriedades em destaques.

Isso implementa o requisito da especificação CSS de Pseudos Nível 4:

"Quando qualquer propriedade suportada não recebe um valor da cascata ... seu valor especificado é determinado pela herança do pseudoelemento de destaque correspondente do elemento pai do elemento de origem."

Barras de rolagem CSS: scrollbar-color e scrollbar-width

A especificação CSS Scrollbars permite que os desenvolvedores estilizem barras de rolagem especificando suas cores e espessura. Essa especificação adiciona as duas propriedades a seguir. A propriedade scrollbar-color oferece a capacidade de mudar o esquema de cores das barras de rolagem para que elas se encaixem melhor no estilo específico de uma página da Web. A propriedade scrollbar-width permite o uso de barras de rolagem mais estreitas, que podem ser mais adequadas para alguns casos de uso, ou até mesmo que elas sejam completamente ocultadas sem afetar a rolagem.

Animação CSS font-palette para fontes coloridas

A propriedade CSS font-palette permite a seleção de uma paleta específica usada para renderizar uma fonte de cor. Com o suporte recém-adicionado para a animação dessa propriedade, a transição entre paletas não é mais uma etapa discreta, mas se torna uma transição suave entre duas paletas selecionadas. Isso funciona em qualquer lugar de animações e transições CSS.

Recursos de ortografia e gramática do CSS

Os pseudoelementos do CSS destacam pseudoelementos para definir o estilo do texto que o user agent sinalizou como incorreto ou com erros gramaticais. Além disso, as decorações das linhas expõem as decorações padrão do user agent para identificar erros ortográficos e gramaticais. Esses recursos permitem que os desenvolvedores escolham cores mais legíveis para os erros padrão de ortografia e gramática, destaquem palavras com erros ortográficos com cores de fundo ou outras decorações e implementem uma verificação ortográfica personalizada que se mistura à experiência do dispositivo.

Mascaramento de CSS aprimorado para SVG

Esta é uma continuação do suporte aprimorado para máscaras CSS no Chrome 120, com a adição de um novo suporte a máscaras no SVG (várias máscaras, assim como mask-mode, mask-composite, mask-position e mask-repeat). Além disso, agora há suporte para máscaras SVG remotas (por exemplo, mask: url(masks.svg#star)).

Valores de exibição específicos para Ruby

Foram adicionados novos valores de propriedade de exibição de CSS, ruby e ruby-text. Os valores de exibição padrão de <ruby> e <rt> são modificados para ruby e ruby-text, respectivamente, e o layout ruby respeita esses valores de exibição. Os autores da Web podem usar qualquer elemento, como <div>, para renderizar o rubi definindo os novos valores de exibição.

APIs Web

Pacote de recursos do Attribution Reporting: atrasos agregados reduzidos, campo épsilon do relatório no nível do evento, chaves reservadas

O Chrome inclui mudanças na API Attribution Reporting com foco em:

  • Reduzir a perda de transmissão ao oferecer suporte à redução do atraso no relatório agregado.
  • Mais configurabilidade da API ao oferecer suporte a um campo épsilon de relatório no nível do evento.
  • Melhoria na extensibilidade da API ao falhar nos registros ao encontrar chaves reservadas.

API notRestoredReason do cache de avanço e retorno

A API notRestoredReason vai informar a lista de motivos para uma página não ser veiculada pelo bfcache usando a API PerformanceNavigationTiming.

Exigir gesto do usuário para APIs de redimensionamento no picture-in-picture do documento

Isso ativa os métodos resizeBy() e resizeTo() em janelas picture-in-picture de documentos, mas com a restrição extra de um requisito de gesto do usuário para reduzir o potencial de abuso.

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). Ele melhora a acessibilidade e o desempenho e desbloqueia novos recursos para editores baseados na Web.

Detecção de recurso para formatos de área de transferência compatíveis

Agora é possível verificar se a API Async Clipboard oferece suporte a um determinado tipo MIME chamando a nova função supports(), transmitindo o tipo MIME como um argumento, por exemplo, ClipboardItem.supports('image/png').

HTMLSelectElement showPicker()

O método showPicker() de HTMLSelectElement oferece aos desenvolvedores uma maneira de abrir programaticamente o seletor de opções de um elemento <select>, seguindo o padrão de input.showPicker().

MediaCapabilities: consultar suporte a HDR com decodingInfo()

Amplia a API Media Capabilities para permitir a detecção de suporte à renderização HDR por meio de três novos campos de dicionário VideoConfiguration: hdrMetadataType, colorGamut, transferFunction.

O Chromium implementa os próprios algoritmos de mapeamento de tons, portanto, sempre retornará verdadeiro para metadados estáticos HDR10 (smpteSt2086). Metadados dinâmicos smpteSt2094-40 (HDR10+) e smpteSt2094-10 não são compatíveis no momento e, portanto, retornarão falso.

API Private Aggregate: seleção do coordenador de agregação

Essa modificação na API Private Aggregate oferece um mecanismo para selecionar qual coordenador usar para criptografia de payload (de uma lista de permissões especificada pelo fornecedor). A escolha do serviço é feita com uma opção adicional nas chamadas run() e selectURL() do armazenamento compartilhado e nas chamadas runAdAuction() e joinAdInterestGroup() da API Protected Audience. A abordagem ampla se alinha em grande parte com a API Attribution Reporting.

API Remote Playback em computadores

Essa API estende a HTMLMediaElement, que permite controlar a reprodução remota de mídia de uma página da Web. Esse recurso vem no Android no Chrome 56 e está disponível para computadores a partir do Chrome 121.

API Speculation Rules

Há novos recursos para a API Speculation Rules.

Suporte a regras de documentos: é uma extensão da sintaxe das regras de especulação que permite ao navegador receber a lista de URLs para carregamento especulativo dos elementos <a> em uma página. Elas podem incluir critérios para os links que podem ser usados. Junto com um novo campo de "eagerness" para regras de especulação, os desenvolvedores podem pré-buscar automaticamente ou pré-renderizar links nas páginas imediatamente, passando o cursor do mouse ou passando o mouse para baixo.

Uma mudança separada permite especificar regras de especulação usando o cabeçalho de resposta HTTP Speculation-Rules como alternativa ao uso de elementos <script> in-line. O valor desse cabeçalho precisa ser um URL que aponta para um recurso de texto com o tipo MIME "application/speculationrules+json". As regras do recurso serão adicionadas ao conjunto de regras do documento.

Por fim, a dica No-Vary-Search permite pré-buscas especulativas para corresponder mesmo que os parâmetros de consulta do URL mudem. O cabeçalho de resposta HTTP No-Vary-Search declara que algumas ou todas as partes da consulta de um URL podem ser ignoradas para fins de correspondência. Ela pode declarar que a ordem das chaves do parâmetro de consulta não deve impedir correspondências, que parâmetros de consulta específicos não devem impedir correspondências ou que apenas determinados parâmetros de consulta conhecidos devem causar incompatibilidades.

Objetos de interface SpeechSynthesis e SpeechSynthesisVoice

Adiciona os objetos de interface para SpeechSynthesis e SpeechSynthesisVoice aos recursos já compatíveis. Isso possibilita a detecção de recursos usando o SpeechSynthesisVoice.prototype.

API Storage Buckets

Com os buckets de armazenamento, os sites podem organizar dados no dispositivo em "buckets" separados, permitindo que os user agents removam os dados agrupados independentemente daqueles que estão em outros buckets e permitem que os sites gerenciem de maneira ergonômica dados relacionados semanticamente. Cada bucket de armazenamento pode conter dados associados a APIs de armazenamento estabelecidas, como IndexedDB e CacheStorage.

URLPattern: herdar à esquerda, caractere curinga à direita

O comportamento muda para padrões construídos usando um URL de base, a sintaxe de string do construtor ou ambos, mas não qualquer padrão que especifique explicitamente os componentes separadamente sem um URL de base.

Os componentes não são herdados de um URL de base se um componente "anterior" é especificado explicitamente. No formato de string, os componentes "posteriores" não especificados são implicitamente caracteres curinga, em vez de precisarem estar vazios (com exceção da porta, que sempre é considerada para ser especificada quando o nome do host é). O nome de usuário e a senha nunca são especificados ou herdados implicitamente.

Isso torna os padrões mais expansivos do que antes, nos casos em que caracteres curinga provavelmente são desejáveis.

URLPattern: sinalização RegExp v em vez de u

A API URL Pattern permite que os desenvolvedores especifiquem strings de padrão. Elas são transformadas internamente em expressões regulares.

Quando a API foi implementada pela primeira vez, essas expressões regulares eram compiladas com a sinalização u. O Chrome 121 a atualiza para a sinalização v, ativando conjuntos Unicode.

Adições à WebGPU

A WebGPU agora permite que os desenvolvedores omitam pontos de entrada para módulos de sombreador ao criar um pipeline, melhorando a ergonomia. Se nenhum ponto de entrada padrão for encontrado, um GPUValidationError será acionado normalmente.

As consultas de carimbo de data/hora da WebGPU permitem que os aplicativos da WebGPU meçam com precisão (até nanossegundos) quanto tempo seus comandos da GPU levam para ser executados, especialmente no início e no final das passagens. As consultas de carimbo de data/hora são muito usadas para coletar insights sobre o desempenho e o comportamento das cargas de trabalho da GPU.

Embora a especificação da WebGPU transforme as consultas de carimbo de data/hora em um recurso opcional por questões de ataque de tempo, acreditamos que a quantização dessas consultas oferece um bom meio termo ao reduzir a precisão dos timers com uma resolução de 100 microssegundos.

Encapsulamento de chave X25519Kyber768 para TLS

Proteja o tráfego TLS atual do Chrome contra futuras criptoanálises quânticas implantando o algoritmo de contrato de chaves resistentes a quânticos Kyber768. Este é um contrato de chaves híbrido X25519 + Kyber768 com base 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.

Testes de origem em andamento

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

A API Element Capture

A API Element Capture fornece métodos para capturar uma subárvore do DOM.

Dado um MediaStreamTrack de vídeo obtido por meios preexistentes de iniciar a captura de guia, a captura de elemento permite modificar a faixa para capturar apenas uma subárvore do DOM a partir de um determinado elemento.

A API é parecida com a API Region Capture, mas oferece maior flexibilidade para aplicativos, porque conteúdos ocultos e ocultos são excluídos da captura.

Inscreva-se no teste de origem da ElementCapture

Mudanças no comportamento atual

O Chrome 121 inclui a mudança a seguir no comportamento existente, incluída aqui para que os desenvolvedores estejam cientes da mudança .

Descartar eventos de entrada para iframes de origem cruzada movidos recentemente

Se um iframe de origem cruzada for movido recentemente para a página de incorporação, o Chrome vai descartar silenciosamente os eventos que segmentam o iframe. A lógica é que, se o iframe foi movido recentemente, é provável que o usuário não pretendia clicar ou tocar nele.

Essa mudança foi lançada de forma limitada em 2019: ela afetou apenas os iframes com script que usavam os recursos da versão 2 do IntersectionObserver (ou seja, a detecção de efeitos ou oclusão). Esse lançamento amplia esse comportamento para todos os iframes de origem cruzada. Ele começará como um experimento limitado no Chrome 121 e será ampliado.