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.
Funções relacionadas a sinalização do CSS: abs(), sign()
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çõesSourceBuffer.remove().- A configuração
MediaSource.durationnã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:
- O SwiftShader é um alto risco de segurança devido ao código JIT em execução no processo de GPU do Chromium.
- 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.