Chrome 138

Data de lançamento da versão estável:24 de junho de 2025

Salvo indicação em contrário, as mudanças a seguir se aplicam à versão 138 do canal estável do Chrome para Android, ChromeOS, Linux, macOS e Windows.

CSS e interface

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

A função abs(A) contém um cálculo A e retorna o valor absoluto de A, como o mesmo tipo da entrada: se o valor numérico de A for positivo ou 0⁺, apenas A novamente; caso contrário, -1 * A.

A função sign(A) contém um cálculo A e retorna -1 se o valor numérico de A for negativo, +1 se o valor numérico de A for positivo, 0⁺ se o valor numérico de A for 0⁺ e 0⁻ se o valor numérico de A for 0⁻. O tipo de retorno é um <number>, consistente com o tipo do cálculo de entrada.

MDN Docs:abs() | Bug de rastreamento nº 40253181 | Entrada do ChromeStatus.com | Especificação

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

A notação funcional progress() retorna um valor <number> que representa 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). A função progress() é uma função matemática.

Bug de rastreamento nº 40944203 | Entrada do ChromeStatus.com | Especificação

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

As funções sibling-index() e sibling-count() podem ser usadas como números inteiros em valores de propriedades CSS para estilizar elementos com base na posição deles 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().

Bug de rastreamento nº 40282719 | Entrada do ChromeStatus.com | Especificação

Palavra-chave de dimensionamento stretch do CSS

Uma palavra-chave para propriedades de dimensionamento 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%", mas 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. Uma versão sem prefixo de -webkit-fill-available.

Bug de rastreamento nº 41253915 | Entrada do ChromeStatus.com | Especificação

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. Sem isso, não é prático para uma página detectar se o usuário mudou o tamanho da fonte preferido usando as preferências do sistema operacional. Essa variável de ambiente do CSS vai refletir a escala escolhida pelo usuário.

Bug de rastreamento nº 397737223 | Entrada do ChromeStatus.com | Especificação

Dispositivos

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.

Bug de rastreamento nº 375245353 | Entrada do ChromeStatus.com | Especificação

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 viewport são criados quando a viewport é 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 viewport que podem ser tratadas como logicamente distintas pelo desenvolvedor.

Bug de rastreamento nº 1039050 | Entrada do ChromeStatus.com | Especificação

JavaScript

Atualizar QuotaExceededError para uma interface derivada de DOMException

Antes, quando a plataforma da Web queria informar que você tinha excedido a cota, ela usava DOMException com a propriedade name específica definida como QuotaExceededError. No entanto, isso não permite transmitir informações adicionais.

Isso propõe remover "QuotaExceededError" da lista de nomes DOMException integrados e, em vez disso, cria um nome de classe QuotaExceededError na lista de DOMException integrados e tem as propriedades opcionais adicionais quota e requested. Propomos que todas as instâncias de especificações que geram "QuotaExceededError" DOMExceptions sejam atualizadas para gerar QuotaExceededErrors. Por enquanto, essas especificações deixariam as propriedades quota e requested no valor padrão de null, mas elas poderiam ser atualizadas para incluir esses dados, se isso for útil para o caso de uso (e não for, por exemplo, um vazamento de privacidade).

Entrada do ChromeStatus.com | Especificação

APIs Web

API Translator

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

MDN Docs | Bug de rastreamento nº 322229993 | Entrada do ChromeStatus.com | Especificação

API Language Detector

Uma API JavaScript para detectar o idioma de um texto com níveis de confiança.

A detecção de idiomas é um complemento importante da tradução. Isso pode ser combinado com a tradução, por exemplo, usando a entrada do usuário em um idioma desconhecido e traduzindo para um idioma de destino específico. Atualmente, os navegadores já têm recursos de detecção de idioma, e queremos oferecê-los aos desenvolvedores Web por meio de 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.

MDN Docs | Entrada do ChromeStatus.com | Especificação

API Summarizer

A 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 (GitHub) 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.

MDN Docs | Bug de rastreamento nº 351744634 | Entrada do ChromeStatus.com | Especificação

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 após ser serializado e analisado novamente.

Entrada do ChromeStatus.com | Especificação

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 Crash Reporting, que é enviado ao endpoint de relatórios padrão para relatórios de falhas.

Entrada do ChromeStatus.com | Especificação

Disparar o evento pushsubscriptionchange ao fazer uma nova assinatura

Aciona o evento pushsubscriptionchange em service workers quando uma origem para a qual uma inscrição 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á disparado com oldSubscription e newSubscription vazios.

Bug de rastreamento nº 407523313 | Entrada do ChromeStatus.com | Especificação

Multimídia

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, 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 de rotação e inversão 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 VideoDecoderConfig emitido como parte de EncodedVideoChunkMetadata. Se encode() for chamado com frames de orientações diferentes, uma exceção não fatal será gerada. configure() pode ser usado para redefinir a orientação permitida.

Bug de rastreamento nº 40243431 | Entrada do ChromeStatus.com | Especificação

Desempenho

Adicione prefetchCache e prerenderCache ao cabeçalho Clear-Site-Data

Dois novos valores para o cabeçalho Clear-Site-Data que ajudam os desenvolvedores a segmentar a limpeza do cache de pré-renderização e pré-busca: "prefetchCache" e "prerenderCache".

Bug de rastreamento nº 398149359 | Entrada do ChromeStatus.com | Especificação

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. Por exemplo, quando _blank é especificado como uma dica, uma página pré-renderizada pode ser ativada para uma página navegável aberta por window.open(). O campo não tem efeito na pré-busca.

A especificação permite que esse campo aceite qualquer string válida como nome ou palavra-chave de destino navegável como valor, mas esse lançamento aceita apenas uma das strings "_self" ou "_blank". Se a dica não for especificada, ela será tratada como se "_self" fosse especificado.

Bug de rastreamento nº 40234240 | Entrada do ChromeStatus.com | Especificação

Segurança

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

Entrada do ChromeStatus.com | Especificação

Worker de serviço

Suporte do ServiceWorker para pré-busca de regras de especulação

Esse recurso ativa as pré-buscas controladas pelo ServiceWorker, ou seja, uma pré-busca de regras de especulação para URLs controlados por um Service Worker. Antes, a pré-busca era cancelada ao detectar um service worker de controle. Assim, a navegação subsequente para o destino de pré-busca era atendida pelo caminho sem pré-busca. Esse recurso permite que a solicitação de pré-busca passe pelo gerenciador de busca do service worker, e a resposta com a interceptação do service worker é armazenada em cache no cache de pré-busca, resultando em uma navegação subsequente sendo exibida pelo cache de pré-busca. Use a política corporativa PrefetchWithServiceWorkerEnabled para controlar esse recurso.

Bug de rastreamento nº 40947546 | Entrada do ChromeStatus.com | Especificação

Descontinuações e remoções

WebGPU: descontinuar o atributo GPUAdapter isFallbackAdapter

Descontinua o atributo booleano GPUAdapter isFallbackAdapter da WebGPU, que é redundante com o atributo booleano GPUAdapterInfo isFallbackAdapter.

Essa remoção futura é uma pequena mudança incompatível, já que a compatibilidade com adaptadores de substituição ainda não foi implementada em nenhum navegador, resultando em ambos os atributos isFallbackAdapter retornando consistentemente um valor falso.

Bug de rastreamento nº 409259074 | Entrada do ChromeStatus.com | Especificação

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

O padrão de origem 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.

O Safari e o Firefox já enviaram esse comportamento há muito tempo. O Chromium é o último navegador com o comportamento antigo. Os contadores de uso mostram que cerca de 0,001% a 0,005% dos carregamentos de página atingiram o comportamento descontinuado. Se um site tiver esse problema, a reprodução poderá ser interrompida.

O uso de abort() para cancelar remoções está aumentando. Portanto, é prudente resolver essa descontinuação antes que mais usos incompatíveis apareçam.

Bug de rastreamento nº 40474569 | Entrada do ChromeStatus.com | Especificação