Chrome 120 Beta

Mascaramento de CSS, regras menos rígidas para aninhamento de CSS, criação de padrões de acordeão com o elemento <details> e a ação enterpictureinpicture para a API Media Session.

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 nos links fornecidos ou na lista em chromestatus.com. O Chrome 120 está na versão Beta desde 1o de novembro 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 sete novos recursos CSS.

Sintaxe CSS <image> para propriedades personalizadas registradas

Oferece suporte ao uso da sintaxe <image> para propriedades personalizadas registradas com @property ou registerProperty(). A sintaxe <image> pode ser usada para restringir valores da propriedade personalizada a valores url() e imagens geradas, como gradientes.

Sintaxe de CSS <transform-function> e <transform-list> para propriedades personalizadas registradas

Oferece suporte ao uso das sintaxes <transform-function> e <transform-list> para propriedades personalizadas registradas com @property ou registerProperty().

A sintaxe pode ser usada para restringir valores da propriedade personalizada para representar transformações. Isso também possibilita o uso de transições e animações diretamente nessas propriedades personalizadas registradas.

Consultas de mídia: recurso de script

O recurso de mídia de script é usado para consultar se as linguagens de script, como JavaScript, são compatíveis com o documento atual. As opções válidas são "enabled", "initial-only" e "none". No entanto, 'apenas inicial' nunca corresponde dentro de um navegador.

Seletor da pseudoclasse :dir()

O seletor da pseudoclasse CSS :dir() corresponde a elementos com base na direção, que é determinada com base no atributo HTML dir.

:dir(ltr) corresponde à direção da esquerda para a direita do texto. :dir(rtl) combina elementos com direção do texto da direita para a esquerda.

Ele não é equivalente aos seletores de atributo [dir], porque corresponde às rotas herdadas de um ancestral com o atributo dir e à direção calculada com base no uso de dir=auto, que determina a direção do primeiro caractere no texto com forte direcionalidade.

Funções exponenciais de CSS

Adiciona as funções exponenciais CSS: pow(), sqrt(), hypot(), log() e exp() da especificação CSS Values e Units nível 4.

Mascaramento de CSS

A CSS mask e propriedades relacionadas, como mask-image e mask-mode, são usadas para ocultar um elemento (parcial ou totalmente) mascarando ou recortando a imagem em pontos específicos.

Esse recurso cancela o prefixo das propriedades -webkit-mask* e as deixa alinhadas com a especificação atual. Isso inclui mask-image, mask-mode, mask-repeat, mask-position, mask-clip, mask-origin, mask-size e mask-composite, bem como a abreviação mask. Há suporte para referências locais mask-image, a serialização agora corresponde à especificação, e os valores aceitos agora correspondem à especificação (por exemplo, add em vez de source-over para mask-composite).

Aninhamento descontraído de CSS

Essa mudança na implementação de aninhamento de CSS permite que as regras de estilo aninhadas comecem com um elemento, por exemplo, h1, em vez de exigir o símbolo & na frente ou serem unidas com is(). O exemplo a seguir agora é válido na especificação e funciona no Chrome 120.

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

Padrão de acordeão usando o atributo de nome em <details>

Esse recurso adiciona a capacidade de construir acordeões usando uma sequência de elementos HTML <details>. Ele adiciona um atributo de nome ao elemento <details>. Quando esse atributo é usado, vários elementos <details> com o mesmo nome formam um grupo. Só é possível abrir um elemento do grupo por vez.

APIs Web

Agora é possível transferir o ArrayBuffer para os construtores VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk e ImageDecoder

Isso vai permitir remover buffers de matriz e usar buffers correspondentes dentro do VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk e AudioData sem uma cópia.

API CSS Font Load FontFaceSet: método check()

O método check() da FontFaceSet verifica se é possível mostrar texto usando as fontes especificadas sem tentar usar fontes na FontFaceSet que não foram carregadas. Isso permite que os usuários empreguem a fonte com segurança sem acionar mais tarde uma substituição de fonte.

Solicitações de fechamento e CloseWatcher

As solicitações de fechamento são um novo conceito que engloba as solicitações do usuário para fechar um item aberto no momento, usando a tecla Esc no computador ou o gesto ou botão "Voltar" no Android. A integração deles ao Chrome traz duas mudanças:

  • CloseWatcher, uma nova API para detectar e responder diretamente a solicitações de fechamento.
  • Upgrade para <dialog> e popover="" para usar o novo framework de solicitação de fechamento e responder ao botão "Voltar" do Android

Workers dedicados e API Storage Access

Os workers dedicados vão herdar o status de acesso ao armazenamento do contexto pai. Portanto, se um documento tiver acesso ao armazenamento pelo document.requestStorageAccess() e depois criar um worker dedicado, o worker também terá acesso ao armazenamento e poderá acessar cookies não particionados.

FedCM: API de erro e API AutoSelectedFlag

APIs dedicadas para ajudar desenvolvedores e usuários a entender melhor o fluxo de autenticação. As duas APIs são acionadas após a permissão do usuário para fazer login em um site ou aplicativo (nesse contexto conhecido como parte confiável (RP)) com um provedor de identidade. Em outras palavras, depois que o usuário clicar no botão Continuar como.

Com a API Error, se a tentativa de login de um usuário falhar, o provedor de identidade pode compartilhar os motivos com o navegador para manter os usuários e os desenvolvedores da parte restrita.

Com a API AutoSelectedFlag, os desenvolvedores de provedor de identidade e RP podem entender melhor sobre a UX de login, avaliar o desempenho e segmentar as métricas adequadamente.

Saiba mais na postagem do blog do FedCM Chrome 120 (em inglês).

Atualizações da funcionalidade dos frames isolados

Há outra opção de formato para as macros de tamanho de anúncio da Protected Audience na API Protected Audience no Sandbox de privacidade. Um recurso de ativação permite que você use macros para especificar o tamanho do anúncio que vence o leilão no URL do anúncio, por exemplo:

https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}

Para ser mais consistente com outros tipos de macro na API Protected Audience, como os usados por deprecatedReplaceInURN e registerAdMacro(), no Chrome 120, estamos adicionando a capacidade de usar ${AD_WIDTH} e ${AD_HEIGHT} como o formato das macros, além do formato atual.

Agora, os beacons automáticos serão enviados para todos os URLs registrados. Antes, apenas destinos especificados ao chamar setReportEventDataForAutomaticBeacons() recebem beacons automáticos, mesmo que esse destino chamasse registerAdBeacon() para reserved.top_navigation no worklet. Agora, qualquer destino que chamar registerAdBeacon() para reserved.top_navigation vai receber um beacon automático, mas apenas os destinos especificados em setReportEventDataForAutomaticBeacons() vão receber dados automáticos de beacon com o beacon. O parâmetro once em setReportEventDataForAutomaticBeacons() agora determinará se os dados serão enviados uma única vez, em vez de determinar se todo o beacon é enviado apenas uma vez.

Margem de rolagem do observador de intersecções

Intersection Observer scrollMargin permite que os desenvolvedores observem destinos dentro de contêineres de rolagem aninhados que estejam recortados pelos contêineres de rolagem. Isso é feito expandindo o retângulo de recorte do contêiner pela scrollMargin ao calcular a interseção.

Relatórios de violação da política de permissões

Isso integra a API Permissions Policy à API Reporting, permitindo que os desenvolvedores da Web configurem endpoints para os quais os relatórios de violação de políticas de permissões serão enviados. Isso permite que os proprietários de sites saibam quando recursos não permitidos estiverem sendo solicitados em suas páginas no campo.

Ela também inclui o cabeçalho Permissions-Policy-Report-Only, que permite o envio de relatórios com base em uma política proposta (análoga à Content-Security-Policy-Report-Only). Assim, é possível avaliar as mudanças na política quanto a possíveis falhas antes de implementá-las no modo aplicável normal.

API Media Session: ação enterpictureinpicture

Adiciona uma ação enterpictureinpicture à API Media Session. Sites podem registrar um manipulador de ações que pode ser usado para abrir uma janela Picture-in-Picture ou de Document Picture-in-Picture.

Saiba mais em Picture-in-picture automático para apps da Web.

Suporte à WebGPU f16

Permite o uso do tipo de ponto flutuante de meia precisão f16 em sombreadores da WebGPU (WGSL).

Os desenvolvedores podem usar o modelo "shader-f16" da especificação da WebGPU e do parâmetro "f16" da especificação WGSL para acessar variáveis de ponto flutuante de 16 bits e APIs nos sombreadores.

MediaCapabilities: consultar suporte a HDR com decodingInfo()

Amplia a API Media Capabilities para permitir a detecção do suporte à renderização HDR usando três novos campos de dicionário da VideoConfiguration: hdrMetadataType, colorGamut e transferFunction. O Chrome implementa os próprios algoritmos de mapeamento de tons, então sempre retorna "true" para metadados estáticos HDR10 (smpteSt2086). Os metadados dinâmicos HDR10+ (smpteSt2094-10) e Dolby Vision (smpteSt2094-40) não são compatíveis no momento. Por isso, eles retornam "false". Prevemos adicionar suporte a metadados dinâmicos no futuro, então essa API vai permitir que os desenvolvedores selecionem o conteúdo apropriado para usuários com suporte.

Estatísticas do MediaStreamTrack (vídeo)

Uma API que expõe os contadores de frames (entregues, descartados, no total) para MediaStreamTracks de tipos de vídeo. As estatísticas de áudio serão cobertas por outro lançamento de recurso do Chrome.

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

Modificação da API Private Aggregate para fornecer um mecanismo para selecionar qual coordenador usar para criptografia do payload (de uma lista de permissões especificada pelo fornecedor). A escolha do serviço é feita com uma opção adicional nas chamadas do SharedStorage run() e selectURL() e nas chamadas runAdAuction() e joinAdInterestGroup() da Protected Audience. A abordagem ampla se alinha amplamente à abordagem da API Attribution Reporting.

A API Login Status no FedCM

Com a API Login Status (antiga API Sign-in Status do IdP), os provedores de identidade podem sinalizar ao navegador quando os usuários estão fazendo login ou logout.

Isso é usado pelo FedCM para lidar com um ataque de tempo silencioso e, ao fazer isso, permite que o FedCM opere sem cookies de terceiros.

No futuro, essa API poderá ser disponibilizada para mais casos de uso.

Saiba mais no anúncio na postagem do blog.

Transições de visualização: como tornar o callback não anulável

No momento, a chamada startViewTransition usa um tipo de callback anulável opcional com um valor padrão nulo: startViewTransition(optional UpdateCallback? callback = null).

Esse recurso muda o tipo para não anulável: startViewTransition(optional UpdateCallback callback).

Encapsulamento de chaves X25519Kyber768 para TLS

Proteja o tráfego TLS atual do Chrome contra futuras criptoanálises quânticas com a implantação do algoritmo de contrato de chave Kyber768 resistente a quânticos. Esse é um contrato de chave híbrido X25519 + Kyber768 com base em um padrão IETF. Esta especificação e este lançamento está fora do escopo do W3C. Esse contrato de chave será lançado como uma criptografia TLS e será transparente para os usuários.

Testes de origem em andamento

No Chrome 120, é possível ativar os novos testes de origem a seguir.

"prioridade" Cabeçalho da solicitação HTTP

Esse recurso adiciona o cabeçalho de solicitação priority a todas as solicitações HTTP com as informações de prioridade da solicitação no momento em que ela foi enviada.

O RFC 9218 (Esquema de priorização extensível para HTTP) define uma "prioridade". Cabeçalho de solicitação HTTP a ser usado para sinalizar a prioridade da solicitação para origens (e intermediários). Ele também define processos de negociação e frames em nível de 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 foi solicitado pela primeira vez, enquanto os mecanismos baseados em frame permitem modificar a prioridade após o fato. O cabeçalho pode operar de ponta a ponta com os servidores de origem (e fornecer um mecanismo para que a origem substitua a prioridade se for reconhecido por intermediários) enquanto os frames estão limitados à operação em um nível de link. Esse recurso é especificamente para oferecer suporte ao esquema de priorização com base em cabeçalho.

Propomos uma extensão da API Storage Access (compatível com versões anteriores) para permitir o acesso a armazenamento não particionado (cookies e não cookies) em um contexto de terceiros.

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 apresenta uma nova opção para fetch() para declarar uma a intenção de se comunicar com esse dispositivo, um novo recurso controlado por políticas para bloquear cada site acesso a esse recurso, além de novos cabeçalhos para a resposta simulada do servidor, a fim de fornecer metadados adicionais.

Inscreva-se no teste de origem do prompt de permissão de acesso à rede privada.

Acesso irrestrito a performance.measureUserAgentSpecificMemory()

performance.measureUserAgentSpecificMemory() é especificada para estar disponível apenas em ambientes isolados de origem cruzada (por trás de COOP/COEP). Esse recurso remove a restrição COOP/COEP para permitir testes de regressão e a medição do impacto quando não é possível implantar completamente a COOP/COEP. Observe que a performance.memory (API legada) não pode ser usada para essa finalidade porque nunca foi ativada nos workers.

performance.measureUserAgentSpecificMemory()

O recurso adiciona uma função performance.measureUserAgentSpecificMemory() que estima o uso da memória da página da Web. O site precisa ter isolamento de origem cruzada para usar a API.

Descontinuações e remoções

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

Esta versão do Chrome descontinua um recurso.

Descontinuação e remoção do suporte ao Theora

Devido a riscos de segurança emergentes, o Chrome vai descontinuar e remover o suporte ao codec de vídeo Theora no Chrome para computadores. O baixo uso do Theora (e agora muitas vezes incorreto) não justifica mais o suporte para a maioria dos usuários.

Esta versão do Chrome remove dois recursos.

Remover dados: URL em SVGUseElement

Atribuir um dado: o URL em SVGUseElement pode causar XSS. E isso também levou à desativação dos Tipos confiáveis. Portanto, planejamos descontinuar e remover o suporte a ele.

Remoção da aplicação geral de mesma origem na Aplicação Incorporada da Política de Segurança de Conteúdo (CSPEE, na sigla em inglês)

Remove um tratamento especial para iframes de mesma origem da aplicação incorporada da CSP. Isso alinha o comportamento da aplicação da aplicação incorporada da CSP para iframes de origem cruzada e da mesma origem.