Chrome 120 Beta

Mascaramento de CSS, regras menos rígidas para aninhamento de CSS e criação de padrões de acordeão com o elemento <details>, 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 os valores da propriedade personalizada a valores url() e a imagens geradas como gradientes.

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

Compatível com o uso das sintaxes <transform-function> e <transform-list> para propriedades personalizadas registradas com @property ou registerProperty().

A sintaxe pode ser usada para restringir os valores da propriedade personalizada para representar transformações. Isso também possibilita usar 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 "ativado", "somente inicial" e "nenhum". Entretanto, 'apenas inicial' nunca corresponde em um navegador.

Seletor de pseudoclasse :dir()

O seletor de pseudoclasse CSS :dir() faz a correspondência entre elementos com base na direcionalidade, que é determinada com base no atributo HTML dir.

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

Ele não é equivalente aos seletores de atributo [dir] porque faz a correspondência com direções herdadas de um ancestral com o atributo dir e também com a direção calculada com o uso de dir=auto, que determina a direcionalidade do primeiro caractere no texto com forte direcionalidade.

Funções exponenciais CSS

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

Mascaramento de CSS

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

Esse recurso tira o prefixo das propriedades -webkit-mask* e as coloca de acordo 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. As referências de mask-image locais têm suporte, 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 de CSS relaxado

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 exigirem 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 criar 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 no grupo por vez.

APIs Web

Permitir a transferência de ArrayBuffer para construtores VideoFrame, AudioData, EnencodedVideoChunk, EnencodedAudioChunk e ImageDecoder.

Isso permite remover buffers de matriz e usar buffers correspondentes dentro de VideoFrame, ImageDecoder, EnencodedVideoChunk, EnencodedAudioChunk e AudioData sem uma cópia.

API CSS Font Loading 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 usem a fonte com segurança sem acionar uma substituição.

Fechar solicitações e CloseWatcher

Solicitações de fechamento são um novo conceito que engloba solicitações de usuários para fechar algo que está aberto no momento usando a tecla Esc no computador, o gesto "Voltar" ou o botão no Android. A integração ao Chrome vem com duas mudanças:

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

API Storage Access e workers dedicados

Os workers dedicados herdarão o status de acesso ao armazenamento do contexto pai. Portanto, se um documento tiver acesso ao armazenamento via document.requestStorageAccess() e criar um worker dedicado, ele 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, conhecida como uma 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 poderá compartilhar os motivos com o navegador para manter os usuários e os desenvolvedores de RP atualizados.

Com a API AutoSelectedFlag, os desenvolvedores de provedor de identidade e de RP podem entender melhor a UX de login, além de avaliar o desempenho e segmentar as métricas de acordo com essa informação.

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

Atualizações da funcionalidade Fenced Frames

Há uma opção de formato adicional para macros de tamanho do anúncio da Protected Audience na API Protected Audience no Sandbox de privacidade. Com um recurso de ativação, é possível usar 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 as usadas por deprecatedReplaceInURN e registerAdMacro(), no Chrome 120, vamos adicionar a capacidade de usar ${AD_WIDTH} e ${AD_HEIGHT} como formato das macros, além do formato atual.

Os beacons automáticos agora são enviados para todos os URLs registrados. Anteriormente, 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 chame registerAdBeacon() para reserved.top_navigation vai receber um sensor automático, mas apenas os destinos especificados em setReportEventDataForAutomaticBeacons() vão receber dados automáticos do sensor. O parâmetro once no setReportEventDataForAutomaticBeacons() agora vai determinar se os dados serão enviados uma vez, em vez de todo o beacon ser enviado apenas uma vez.

Margem de rolagem do observador de intersecção

O Intersection Observer scrollMargin permite que os desenvolvedores observem os destinos dentro dos contêineres de rolagem aninhados que estão atualmente cortados pelos contêineres de rolagem. Isso é feito expandindo o retângulo de recorte do contêiner pelo 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 da política de permissões serão enviados. Assim, os proprietários de sites vão poder saber quando recursos não permitidos são solicitados nas páginas em 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álogo a Content-Security-Policy-Report-Only) para que as mudanças na política possam ser avaliadas quanto a possíveis falhas antes da implementação no modo normal de aplicação.

API Media Session: ação enterpictureinpicture

Adiciona uma ação enterpictureinpicture à API Media Session. Os sites podem registrar um manipulador de ação que pode ser usado para abrir uma janela picture-in-picture ou documento Picture-in-picture.

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

Suporte a WebGPU f16

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

Os desenvolvedores podem usar o recurso "shader-f16" da especificação WebGPU e a extensão "f16" da especificação WGSL para acessar APIs e variáveis de ponto flutuante de 16 bits 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 VideoConfiguration: hdrMetadataType, colorGamut e transferFunction. O Chrome implementa os próprios algoritmos de mapeamento de tons, então sempre vai retornar o valor "true" para metadados estáticos HDR10 (smpteSt2086). No momento, os metadados dinâmicos HDR10+ (smpteSt2094-10) e Dolby Vision (smpteSt2094-40) não têm suporte, então vão retornar "false". Esperamos adicionar suporte a metadados dinâmicos no futuro, para que essa API permita que os desenvolvedores selecionem o conteúdo adequado para usuários com suporte.

Estatísticas do MediaStreamTrack (vídeo)

Uma API que expõe contadores de frames (entregues, descartados, totais) para MediaStreamTracks de um tipo de vídeo. As estatísticas de áudio serão abordadas em outro lançamento de recurso do Chrome.

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

Modificação na API Private agregação para oferecer um mecanismo para selecionar qual coordenador usar para a 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 SharedStorage run() e selectURL() e nas chamadas de público-alvo protegido runAdAuction() e joinAdInterestGroup(). A abordagem ampla se alinha em grande parte com a abordagem da API Attribution Reporting.

A API Login Status no FedCM

A API Login Status (antiga API IdP Sign-in Status) permite que os provedores de identidade sinalizem para o navegador quando os usuários fizerem login ou logout.

Ele é usado pela FedCM para lidar com um ataque de tempo silencioso e, ao fazer isso, permite que a FedCM opere sem cookies de terceiros.

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

Saiba mais nesta postagem do blog com o anúncio.

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

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

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

Encapsulamento de chave X25519Kyber768 para TLS

Para proteger o tráfego TLS atual do Chrome contra futuras criptoanálises quânticas, implante o algoritmo de contrato de chaves resistente a quânticos Kyber768. Este é um contrato de chaves híbrido X25519 + Kyber768 baseado no 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 deve ser transparente para os usuários.

Testes de origem em andamento

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

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

Esse recurso adiciona o cabeçalho priority a todas as solicitações HTTP com as informações de prioridade no momento do envio.

O RFC 9218 (esquema de priorização extensível para HTTP) define um cabeçalho de solicitação HTTP de "prioridade" a ser usado para sinalizar a prioridade da solicitação às origens (e intermediários). Ela também define processos de negociação e frames no nível do protocolo para HTTP/2 e HTTP/3 terem as mesmas informações de prioridade. O cabeçalho só pode sinalizar a prioridade inicial de um recurso quando ele foi solicitado pela primeira vez, enquanto os mecanismos baseados em frames permitem modificar a prioridade após o fato. O cabeçalho pode operar de ponta a ponta nos servidores de origem (e fornecer um mecanismo para que a origem substitua a prioridade, caso seja reconhecida por intermediários), enquanto os frames estão limitados à operação em nível de link. Esse recurso serve especificamente para dar suporte ao esquema de priorização baseada em cabeçalho.

Propomos uma extensão da API Storage Access (compatível com versões anteriores) para permitir o acesso ao armazenamento não particionado (com ou sem 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 tem nomes globalmente exclusivos e, portanto, não pode receber certificados TLS, esse recurso introduz uma nova opção para fetch() para declarar a intenção de um desenvolvedor de se comunicar com esse dispositivo, um novo recurso controlado por políticas para bloquear o acesso de cada site a essa capacidade e novos cabeçalhos para a resposta de simulação do servidor 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() foi especificado 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 medição do impacto quando não é possível implantar totalmente COOP/COEP. Não é possível usar performance.memory (API legada) para essa finalidade porque nunca foi ativada nos workers.

performance.measureUserAgentSpecificMemory()

Esse 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 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.

Nesta versão do Chrome, descontinuamos um recurso.

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

O Chrome vai descontinuar o suporte e remover o suporte para o codec de vídeo Theora no Chrome para computadores devido a novos riscos de segurança. O baixo uso (e agora muitas vezes incorreto) do Theora 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

Ao atribuir um dado: o URL no SVGUseElement pode causar XSS. Isso também fez com que os Tipos confiáveis fossem ignorados. Por isso, planejamos suspender o uso e remover o suporte a esse recurso.

Remoção da aplicação geral de mesma origem no CSPEE

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