Chrome 138 Beta

Publicado em: 28 de maio de 2025

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 aqui nos links fornecidos ou na lista em ChromeStatus.com. O Chrome 138 está na versão Beta desde 28 de maio de 2025. Baixe a versão mais recente em Google.com para computador ou na Google Play Store para Android.

CSS e interface

Nesta versão, adicionamos seis novos recursos de CSS e interface.

Palavra-chave de dimensionamento stretch do CSS

Uma palavra-chave para propriedades de dimensionamento do CSS (por exemplo, width e height) que permite que os elementos cresçam para preencher exatamente o espaço disponível do bloco de contêiner. É semelhante a 100%, exceto que o tamanho resultante é aplicado à caixa de margem do elemento, em vez da caixa indicada por box-sizing. Usar essa palavra-chave permite que o elemento mantenha as margens e seja o maior possível.

As funções relacionadas a sinal abs() e sign() calculam várias funções relacionadas ao sinal do argumento.

Variável de ambiente CSS para escala de fonte no nível do SO

Expõe a escala de fonte preferida de um usuário ao CSS. No momento, não é prático para uma página detectar se o usuário mudou o tamanho da fonte preferido nas preferências do sistema operacional. Essa variável de ambiente do CSS vai refletir a escala escolhida pelo usuário.

CSS sibling-index() e sibling-count()

As funções sibling-index() e sibling-count() podem ser usadas como números inteiros em valores de propriedade CSS para estilizar um elemento com base na posição dele entre os elementos irmãos ou no número total de elementos irmãos, respectivamente. Essas funções podem ser usadas diretamente como valores inteiros, mas de maneira mais interessante dentro de expressões calc().

li {
  animation-delay: calc(0.1s * sibling-index());
}

Notação funcional de progresso de interpolação: função CSS progress()

A notação funcional progress() é uma função matemática que retorna um valor <number> representando a posição de um cálculo (o valor de progresso) entre dois outros cálculos (o valor inicial e o valor final do progresso).

API Viewport Segments Enumeration

Com a API Viewport Segments, os desenvolvedores podem adaptar o layout da Web para dispositivos dobráveis. Os segmentos da janela de visualização definem a posição e as dimensões de uma região logicamente separada da janela. Os segmentos de janela de visualização são criados quando ela é dividida por um ou mais recursos de hardware (como uma dobra ou uma dobradiça entre telas separadas) que atuam como um divisor. Os segmentos são as regiões da janela de visualização que podem ser tratadas como logicamente distintas pelo desenvolvedor.

APIs Web

Adicionar suporte a metadados de orientação de frames de vídeo ao WebCodecs

Introduz os valores rotation: int e flip: bool a várias interfaces relacionadas a vídeo no WebCodecs para que os desenvolvedores possam trabalhar com fontes de frames que têm orientação (por exemplo, câmeras Android e determinadas mídias). A interface VideoFrame aumenta a capacidade de criar VideoFrames com rotação e inversão arbitrárias, além de acessadores para essas informações no objeto VideoFrame. O objeto VideoDecoderConfig ganha campos rotation e flip que são emitidos automaticamente em objetos VideoFrame decodificados. A classe VideoEncoder ganha mecanismos para transmitir informações de rotação e inversão de encode() para o VideoDecoderConfig emitido como parte de EncodedVideoChunkMetadata. Se encode() for chamado com frames de orientação diferente, uma exceção não fatal será gerada. O método configure() pode ser usado para redefinir a orientação permitida.

API Crash Reporting: is_top_level e visibility_state

Esse recurso adiciona campos de string is_top_level e visibility_state ao corpo da API de relatórios de falhas, que é enviado ao endpoint de relatórios padrão para relatórios de falhas.

Fazer escape de < e > em atributos na serialização

Faça o escape de < e > nos valores de atributos na serialização. Isso reduz o risco de ataques XSS de mutação, que ocorrem quando o valor de um atributo é interpretado como um token de tag de início depois de ser serializado e analisado novamente.

Política de integridade para scripts

A integridade de subrecursos (SRI, na sigla em inglês) permite que os desenvolvedores garantam que os recursos que pretendem carregar são realmente os que estão sendo carregados. Mas não há uma maneira atual para os desenvolvedores terem certeza de que todos os scripts foram validados usando a SRI. O cabeçalho Integrity-Policy permite que os desenvolvedores afirmem que todos os recursos de um determinado tipo precisam ser verificados quanto à integridade. Se um recurso desse tipo for carregado sem metadados de integridade, a tentativa vai falhar e acionar um relatório de violação.

Cota de armazenamento informada previsível

Informar uma cota de armazenamento previsível da API Estimate do StorageManager para sites que não têm permissões de armazenamento ilimitadas. É possível detectar o modo de navegação de um usuário usando a cota de armazenamento informada, porque o espaço de armazenamento disponibilizado é significativamente menor no modo de navegação anônima do que no modo normal.

Essa é uma mitigação que impede a detecção do modo de navegação de um usuário usando a API de armazenamento, informando uma cota artificial igual ao uso + min(10 GiB, disco arredondado para cima para o valor mais próximo de 1 GiB), em todos os modos de navegação para sites com permissões de armazenamento limitadas. Os sites com permissões de armazenamento ilimitado não serão afetados. A cota obrigatória também não será afetada.

Evento pushsubscriptionchange após a renovação da assinatura

Aciona o evento pushsubscriptionchange em service workers quando uma origem para a qual uma assinatura por push existia no passado, mas que foi revogada devido a uma mudança de permissão (de concedida para negar/padrão), recebe novamente a permissão de notificação. O evento será acionado com um oldSubscription e newSubscription vazios.

Regras de especulação: adicione prefetchCache e prerenderCache ao cabeçalho Clear-Site-Data

Dois novos valores para o cabeçalho Clear-Site-Data ajudam os desenvolvedores a segmentar a limpeza do cache de pré-renderização e pré-busca: prefetchCache e prerenderCache. Eles podem ser enviados em qualquer solicitação e não precisam ser feitos na solicitação de documento. Por exemplo, podem ser retornados em respostas de chamadas de API de adicionar ao carrinho, login e logout para esclarecer especulações sobre mudanças de estado.

Regras de especulação: campo target_hint

Isso estende a sintaxe das regras de especulação para permitir que os desenvolvedores especifiquem o campo target_hint. Esse campo fornece uma dica para indicar um destino navegável em que uma página pré-renderizada será ativada. Quando _blank é especificado como uma dica, uma página pré-renderizada pode ser ativada para uma página aberta navegável por window.open(). O campo está indisponível para pré-busca.

Política rígida de mesma origem para a API Storage Access

Ajusta a semântica da API Storage Access para seguir estritamente a política de mesma origem em relação à segurança. Ou seja, usar document.requestStorageAccess() em um frame só anexa cookies às solicitações para a origem do iframe (não ao site) por padrão.

API Summarizer

Uma API JavaScript para produzir resumos do texto de entrada, com o suporte de um modelo de linguagem de IA. Espera-se que os navegadores e sistemas operacionais tenham cada vez mais acesso a um modelo de linguagem. Ao expor esse modelo integrado, evitamos que cada site precise fazer o download do próprio modelo de linguagem com vários gigabytes ou enviar texto de entrada para APIs de terceiros. A API de resumo, em particular, expõe uma API de alto nível para interagir com um modelo de linguagem e resumir entradas para vários casos de uso de maneira que não dependa do modelo de linguagem específico em questão. Uma política corporativa (GenAILocalFoundationalModelSettings) está disponível para desativar o download do modelo subjacente, o que tornaria essa API indisponível.

Saiba mais em Gerar resumos concisos com IA integrada.

API Language Detector

Uma API JavaScript para detectar o idioma usado em determinado texto, com níveis de confiança. A detecção de idiomas é um complemento importante da tradução e pode ser usada em combinação com a API Translator. Por exemplo, use a entrada do usuário em um idioma desconhecido, determine o idioma e traduza para um idioma de destino específico. Embora os navegadores já tenham recursos de detecção de idioma, isso oferece o mesmo poder aos desenvolvedores Web com uma API JavaScript, complementando a API de tradução.

Uma política corporativa (GenAILocalFoundationalModelSettings) está disponível para desativar o download do modelo subjacente, o que tornaria essa API indisponível.

Saiba mais em Detectar qual idioma é usado com a IA integrada.

API Translator

Uma API JavaScript que oferece recursos de tradução de idiomas para páginas da Web. Embora os navegadores estejam cada vez mais oferecendo tradução de idioma aos usuários, esses recursos também podem ser úteis para desenvolvedores Web. Isso é especialmente o caso quando as capacidades de tradução integradas do navegador não ajudam, como em serviços interativos e ao vivo. Uma política corporativa (GenAILocalFoundationalModelSettings) está disponível para desativar o download do modelo subjacente, o que tornaria essa API indisponível.

Saiba mais em Tradução com IA integrada.

Extensões de escopo de apps da Web

Adiciona um campo de manifesto do app da Web "scope_extensions" que permite que os apps da Web estendam o escopo para outras origens. Isso permite que sites que controlam vários subdomínios e domínios de nível superior sejam apresentados como um único web app. Exige que as origens listadas confirmem a associação com o web app usando um arquivo de configuração .well-known/web-app-origin-association.

Web serial por Bluetooth no Android

Esse recurso permite que páginas da Web e apps da Web se conectem a portas seriais por Bluetooth em dispositivos Android. O Chrome no Android agora oferece suporte à API Web Serial por Bluetooth RFCOMM. As políticas empresariais atuais (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls e SerialBlockedForUrls) em outras plataformas são ativadas em estados future_on para Android. Todas as políticas, exceto SerialAllowUsbDevicesForUrls, serão ativadas após a ativação do recurso. SerialAllowUsbDevicesForUrls será ativada em um lançamento futuro, depois que o Android oferecer compatibilidade com portas seriais com fio no nível do sistema.

Descontinuações e remoções

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

Esta versão do Chrome descontinua dois recursos.

Descontinuação da remoção de intervalos assíncronos para extensões de origem de mídia

O padrão de fonte de mídia mudou há muito tempo para impedir o comportamento definido de forma ambígua envolvendo remoções de intervalos assíncronas:

  • SourceBuffer.abort() não aborta mais as operações SourceBuffer.remove().
  • A configuração MediaSource.duration não pode mais truncar a mídia armazenada em buffer.

Agora, as exceções são geradas nesses dois casos.

Remover o substituto do SwiftShader

A permissão para fallback automático para o WebGL com suporte do renderizador de software SwiftShader foi descontinuada, e a criação de contexto do WebGL vai falhar em vez de retornar ao SwiftShader. Isso foi feito por dois motivos principais:

  1. O SwiftShader é um alto risco de segurança devido ao código JIT em execução no processo de GPU do Chromium.
  2. Os usuários têm uma experiência ruim ao alternar de um WebGL de alto desempenho com suporte de GPU para uma implementação com suporte de CPU. Os usuários não têm controle sobre esse comportamento, e é difícil descrevê-lo em relatórios de bugs.

Durante o período de descontinuação, um aviso vai aparecer no console do Chrome DevTools quando um contexto do WebGL for criado e respaldado pelo SwiftShader. A transmissão de --enable-unsafe-swiftshader vai remover essa mensagem de aviso.