Beta do Chrome 148

Publicado em: 8 de abril de 2026

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 esses recursos usando os links fornecidos ou acessando ChromeStatus.com. O Chrome está na versão Beta a partir deste lançamento. Faça o download da versão Beta mais recente em Google.com para computadores ou na Google Play Store no Android.

CSS e interface

Consultas de contêiner somente com nome em CSS

Agora é possível consultar um contêiner CSS com base apenas no container-name dele, sem definir um container-type no elemento.

#container {
  container-name: --foo;
}
@container --foo {
  input { background-color: green; }
}
<div id="container">
  <div><input></div>
</div>

Cortar o estouro de texto na interação do usuário

Quando um usuário interage (por exemplo, editando ou usando a navegação por cursor) com um texto que tem text-overflow: ellipsis definido, o texto muda temporariamente de reticências para corte. Isso permite que o usuário veja e interaja com o conteúdo de estouro oculto. Esse recurso se aplica a todos os elementos editáveis e não editáveis. Para controles de formulário, como <textarea> e <input>, esse comportamento já é compatível.

Definir corretamente dropEffect para eventos dragEnter, dragLeave e dragOver

As especificações de arrastar e soltar exigem que o atributo dropEffect do objeto dataTransfer tenha determinados valores predeterminados em dragEnter, dragOver e dragLeave. dragEnter e dragOver precisam ter um dropEffect com base no effectAllowed atual. dragLeave sempre precisa ter um dropEffect none. No momento, o Chrome não segue essas regras. A partir do Chrome 148, o navegador vai respeitar a especificação e atribuir os valores corretos a esse atributo.

Carregar elementos de vídeo e áudio de forma lenta

Esse recurso adiciona o loading atributo aos <video> e <audio> elementos. Isso permite que os desenvolvedores adiem o carregamento de recursos de mídia até que o elemento esteja próximo da janela de visualização usando loading="lazy". Isso corresponde ao comportamento de carregamento lento atual para elementos <img> e <iframe>, o que melhora o desempenho do carregamento de páginas e reduz o uso de dados.

Função at-rule() de CSS para detecção de recursos

Esse recurso adiciona uma função at-rule() ao CSS @supports, que permite que os autores detectem o suporte a regras CSS.

Adicionar a palavra-chave revert-rule

A palavra-chave revert-rule reverte a cascata para a regra anterior, de maneira semelhante a como revert-layer reverte a cascata para a camada anterior. Exemplo:

div { color: green; }
div { color: revert-rule; /* Effectively green */ }

Isso é especialmente útil com condicionais, porque permite eliminar a regra atual se uma condição não for atendida:

div {
  display: if(style(--layout: fancy): grid; else: revert-rule);
}

Suporte a text-decoration-skip-ink: all

Esse recurso adiciona suporte ao valor all para a propriedade CSS text-decoration-skip-ink. A propriedade text-decoration-skip-ink já oferece suporte a auto e none. O valor all estende isso aplicando incondicionalmente a omissão de tinta a todos os glifos, incluindo caracteres CJK. Em contraste, auto deixa os caracteres CJK sem omissão, porque a omissão de tinta tende a produzir resultados visuais indesejáveis para scripts ideográficos em posições típicas de sublinhado. Com text-decoration-skip-ink: all, os autores que ajustaram text-underline-position ou text-underline-offset para evitar conflitos com glifos CJK podem ativar explicitamente a omissão de tinta para esses caracteres.

APIs Web

Localizar membros do manifesto

Esse recurso oferece suporte à localização de membros do manifesto, o que permite que os apps adaptem nomes, descrições, ícones e atalhos ao idioma e à região do usuário. Os desenvolvedores fornecem valores localizados no manifesto do app da Web. O navegador seleciona automaticamente os recursos adequados com base nas configurações de idioma do usuário, o que introduz suporte a idiomas em diferentes mercados.

Suporte ao formato de fonte aberta avar2 para modelagem de texto e renderização de glifos

A versão 2 da tabela avar (variações de eixo) permite que os designers de fontes criem fontes variáveis com melhor controle sobre a interpolação. Enquanto a especificação original da fonte variável processa os eixos de forma independente, avar2 permite que os eixos influenciem uns aos outros. Isso resulta em fontes mais fáceis de usar para autores de conteúdo e permite o armazenamento compacto.

Avar2 funciona usando os mesmos conceitos familiares de variações de fonte, mas permite aplicar valores delta variáveis aos eixos de design. É possível fazer isso em uma variedade de eixos.

Por exemplo, é possível criar controles deslizantes de metadados que controlam vários eixos de variação de uma só vez. Isso alivia o usuário de ajustar e encontrar um canto útil do espaço de design da fonte.

Avar2 oferece aos designers de fontes um melhor controle sobre o espaço de variação utilizável da fonte e permite coordenar o ajuste dos eixos de design em vários eixos. Ao definir as relações entre os eixos matematicamente na tabela avar versão 2, as fontes podem alcançar designs complexos com menos mestres. Isso leva a tamanhos de arquivo menores, porque a interpolação é armazenada de forma mais eficiente.

Modo de interface imediata de autenticação da Web

Esse novo modo para navigator.credentials.get() faz com que a interface de login do navegador seja exibida ao usuário se uma chave de acesso ou senha do site for conhecida imediatamente pelo navegador. Caso contrário, ele rejeita a promessa com NotAllowedError se nenhuma credencial estiver disponível. Isso permite que o site evite mostrar uma página de login se o navegador puder oferecer uma opção de credenciais de login que provavelmente serão bem-sucedidas. Ele ainda permite um fluxo de página de login para casos em que essas credenciais não existem.

Suporte à API Web Serial no Android

A API Web Serial fornece uma interface para conexão a dispositivos seriais. Esses dispositivos podem se conectar por uma porta serial no sistema do usuário ou por dispositivos USB e Bluetooth removíveis que emulam uma porta serial. A API agora tem suporte no Android.

Os usuários, especialmente nos setores educacional, amador e industrial, conectam dispositivos periféricos aos computadores que exigem software personalizado para controle. Por exemplo, a robótica é usada com frequência para ensinar programação de computadores e eletrônica nas escolas. Isso exige um software que possa fazer upload de código para um robô ou controlá-lo remotamente. Em um ambiente industrial ou amador, um equipamento, como um moinho, um cortador a laser ou uma impressora 3D, é controlado por um programa em execução em um computador conectado. Esses dispositivos geralmente são controlados por pequenos microcontroladores por meio de uma conexão serial.

Recurso linear_indexing da WebGPU

Essa funcionalidade adiciona dois novos valores integrados de sombreador de computação para melhorar a experiência do usuário. Esses valores são implementados para todos os back-ends (como polyfills de valores integrados atuais).

Suporte a SharedWorker no Android

Por muito tempo, SharedWorker foi desativado no Android devido a preocupações com o ciclo de vida imprevisível do processo. Os desenvolvedores do Chrome acreditavam que as instâncias SharedWorker poderiam ser encerradas inesperadamente sem notificar os usuários ou desenvolvedores da Web. Isso foi considerado inaceitável.

No entanto, uma discussão recente no GitHub sugere que a natureza imprevisível do ciclo de vida do processo de SharedWorker's pode não ser um problema tão significativo quanto se pensava. Com base nisso, o Chrome está reativando SharedWorker no Android e, ao mesmo tempo, investigando esse comportamento para garantir uma experiência estável e confiável.

Ciclo de vida estendido para trabalhadores compartilhados

Essa atualização adiciona uma nova opção, extendedLifetime: true, ao construtor SharedWorker. Isso solicita que o trabalhador compartilhado permaneça ativo mesmo depois que todos os clientes atuais forem descarregados. O principal caso de uso é permitir que as páginas realizem trabalhos assíncronos que exigem JavaScript após o descarregamento de uma página, sem precisar depender de um service worker.

API Prompt

A API Prompt oferece aos desenvolvedores da Web acesso direto a um modelo de linguagem de IA no dispositivo fornecido pelo navegador. O design da API oferece controle refinado, alinhado às formas da API na nuvem. Isso permite melhorar progressivamente os sites com interações de modelo adaptadas a casos de uso individualizados. Isso complementa as APIs de modelo de linguagem baseadas em tarefas (por exemplo, a API Summarizer) e várias APIs e estruturas para inferência generalizada no dispositivo com modelos de ML fornecidos pelo desenvolvedor. A implementação inicial oferece suporte a entradas de texto, imagem e áudio, bem como restrições de resposta que garantem que o texto gerado esteja em conformidade com formatos de expressão regular e JSON Schema predefinidos.

Isso oferece suporte a vários casos de uso. Por exemplo, ele pode gerar legendas de imagens, realizar pesquisas visuais, transcrever áudio, classificar eventos de som, gerar texto seguindo instruções específicas e extrair informações ou insights de material de origem multimodal.

Essa API já foi enviada nas extensões do Chrome. Essa intent acompanha o envio na Web. Uma política corporativa, GenAILocalFoundationalModelSettings, está disponível para desativar o download do modelo subjacente, o que torna essa API indisponível. Os administradores corporativos também podem definir a política BuiltInAIAPIsEnabled para bloquear o uso da API de IA integrada, permitindo outros recursos de IA generativa no dispositivo.

Registro de suporte a idiomas:

  • O Chrome 139 e versões anteriores ofereciam suporte apenas ao inglês ('en').
  • O Chrome 140 adicionou suporte a espanhol e japonês ('es' e 'ja')

Conferir os recursos de confirmação de pagamento seguro

Esse recurso adiciona um novo método estático à API Payment Request que permite que os desenvolvedores da Web recebam os recursos da implementação da confirmação de pagamento seguro do navegador. Isso ajuda os desenvolvedores da Web a saber quais recursos estão disponíveis para a confirmação de pagamento seguro. Em seguida, eles podem decidir se querem usar a confirmação de pagamento seguro com esses recursos.

Regras IDNA ContextJ

O IDNA é o mecanismo para caracteres não ASCII em nomes de domínio. Ele codifica um URL como http://네이버.한국/ como http://xn--950bt9s8xi.xn--3e0b707e/ (um redirecionamento para naver.com).

A especificação de URL define a flag CheckJoiners, que ativa as regras ContextJ no IDNA2008. Isso não permite ZWNJ (U+200C ZERO WIDTH NON-JOINER) e ZWJ (U+200D ZERO WIDTH JOINER) na maioria dos lugares em URLs. A implementação transmite a opção UIDNA_CHECK_CONTEXTJ para a ICU, em que essa regra é implementada.

Reutilizar imagens sem armazenamento na mesma atribuição de origem

Esse recurso permite que a reutilização de imagens disponíveis no mesmo documento ignore o recarregamento Cache-Control: no-store quando o mesmo valor src é atribuído novamente a um elemento <img>. Anteriormente, o Blink buscava a imagem novamente, mesmo que ela já estivesse decodificada e disponível no documento. Isso está alinhado ao comportamento atual do Gecko e do WebKit.

Adicionar o campo contentType ao Resource Timing

Esse recurso adiciona o campo contentType ao PerformanceResourceTiming para armazenar uma string que corresponde ao tipo de conteúdo do recurso buscado, conforme retornado pelo servidor.

Suprimir eventos de ponteiro no início do arrastar

De acordo com a especificação HTML, quando um arrastar é iniciado, o user agent precisa enviar os eventos apropriados para a origem do arrastar para indicar que o fluxo de eventos do ponteiro terminou e que não deve esperar mais eventos desse ponteiro. Esse código foi parcialmente implementado para eventos de mouse e totalmente implementado para arrastar por toque no Android. Com esse recurso, o Chrome pretende atender totalmente a esse requisito de especificação em todas as outras plataformas. Na prática, isso significa que, depois que um arrastar for iniciado, a origem do arrastar vai receber os eventos pointercancel, pointerout e pointerleave para indicar que o fluxo de eventos atual terminou.

WebRTC Datachannel: sempre negociar canais de dados

Esse recurso implementa uma extensão do WebRTC, alwaysNegotiateDataChannels, que define uma maneira de um aplicativo negociar canais de dados em uma oferta de SDP antes de criar um canal de dados. Isso também negocia a seção de dados m= antes de qualquer seção m de áudio ou vídeo e a usa como a 'seção m= marcada pelo ofertante' para [BUNDLE].

Isso significa que, se você criar um RTCPeerConnection com alwaysNegotiateDataChannels: true e chamar createOffer(), ele vai criar uma oferta com uma linha m de aplicativo no SDP. Exemplo:

  const pc = new RTCPeerConnection({
    alwaysNegotiateDataChannels: true});
  const offer = await pc.createOffer();

Se você também adicionar um transceptor de áudio e um canal de dados, a oferta vai negociar uma linha m de aplicativo seguida por uma linha m de áudio no SDP:

  const pc = new RTCPeerConnection({
    alwaysNegotiateDataChannels: true});
  pc.addTransceiver('audio');
  pc.createDataChannel('somechannel');
  const offer = await pc.createOffer();

Novos testes de origem

No Chrome 148, é possível ativar os seguintes novos testes de origem.

Login federado do agente

Um conjunto de extensões do FedCM para ajudar navegadores de agentes a fazer login com segurança em sites usando contas federadas.

Listas de permissões de conexão

As listas de permissões de conexão são um recurso projetado para fornecer controle explícito sobre endpoints externos, restringindo conexões iniciadas pela API Fetch ou outras APIs da plataforma da Web de um documento ou worker. A implementação proposta distribui uma lista de endpoints autorizados do servidor por um cabeçalho de resposta HTTP. Antes que o user agent estabeleça qualquer conexão em nome de uma página, o agente avalia o destino em relação a essa lista de permissões. As conexões com endpoints verificados são permitidas, enquanto aquelas que não correspondem às entradas na lista são bloqueadas.

Tempo do contêiner

A API Container Timing permite monitorar quando as seções anotadas do DOM são exibidas na tela e quando a pintura inicial é concluída. É possível marcar subseções do DOM com o atributo containertiming (semelhante a elementtiming para a API Element Timing) e receber entradas de desempenho quando essa seção for pintada pela primeira vez. Essa API permite medir o tempo de vários componentes nas suas páginas.

Scripts de módulo CSS declarativos

Os scripts de módulo CSS declarativos são uma extensão dos scripts de módulo CSS baseados em script. Eles permitem que os desenvolvedores compartilhem folhas de estilo declarativas com raízes paralelas, incluindo raízes paralelas declarativas. Os desenvolvedores podem definir módulos de estilo inline com <style type="module" specifier="foo"> e aplicar um módulo declarativo a um DOM paralelo declarativo referenciando specifier ou um URL, como <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.

HTML na tela

HTML-in-canvas é uma nova API que permite personalizar elementos DOM de renderização diretamente em uma textura de tela ou WebGL / WebGPU, mantendo a interatividade e a acessibilidade do conteúdo. Ela tem três partes: um atributo para ativar elementos de tela (layoutsubtree), métodos para desenhar elementos filhos (2d: drawElementImage, webgl:texElementImage2D, webgpu: copyElementImageToTexture) e uma maneira de atualizar a transformação do elemento corretamente na tela para interatividade.

Duração do estilo de frames de animação longos

Esse recurso adiciona informações styleDuration e forcedStyleDuration à API frame longo de animação. Isso permite que os desenvolvedores distingam os tempos de estilo e layout.

OpaqueRange

OpaqueRange representa um período de texto ativo no valor de um controle de formulário (por exemplo, um <textarea> ou <input> de texto), para que os desenvolvedores possam trabalhar com texto de valor usando APIs semelhantes a intervalos.

Ele permite operações como getBoundingClientRect(), getClientRects() e uso com a API CSS Highlights para interfaces como sugestões inline, destaques e pop-overs ancorados. Ele preserva o encapsulamento expondo apenas deslocamentos de valor (e retornando nulo para startContainer e endContainer), para que os endpoints DOM e a estrutura interna não sejam expostos.

Analisar instruções de processamento em HTML

As instruções de processamento (sintaxe: <?target data>) são uma construção DOM atual, exposta em XML. Essa construção permite que objetos de nó que não são elementos tenham significado semântico para o processamento de um documento. Por exemplo, é possível usá-los para indicar intervalos para streaming ou destaque sem exigir novos elementos DOM e mudar a estrutura do DOM no que diz respeito ao CSS. Também é possível usá-los como diretivas para o analisador HTML sobre como armazenar em buffer e transmitir.

Política de permissões: foco sem ativação do usuário

Essa política oferece aos incorporadores controle sobre o foco programático de conteúdo incorporado pela política de permissões focus-without-user-activation. Quando a política é negada para um frame, as chamadas de foco programático (element.focus(), autofocus, window.focus(), dialog.showModal() e foco de pop-over) são bloqueadas, a menos que sejam acionadas pela ativação do usuário. O foco iniciado pelo usuário, como clicar ou usar a tecla Tab, nunca é afetado. É possível definir a política por um cabeçalho de resposta HTTP Permissions-Policy ou pelo atributo iframe allow. A delegação de foco é compatível. Um frame pai que tem foco pode transmitir o foco de maneira programática para um iframe filho, mesmo que o filho tenha a política negada. Depois que um frame tem foco, ele pode mover o foco dentro da própria subárvore.

Parâmetros de amostragem da API Prompt

Esse recurso adiciona parâmetros de amostragem à API Prompt. Esses parâmetros controlam como os tokens são amostrados do modelo, o que oferece aos desenvolvedores controle sobre a criatividade ou aleatoriedade da saída. Além disso, ele adiciona atributos à instância LanguageModel para ler os valores definidos. Ele também adiciona uma função LanguageModel estática para receber os valores padrão e máximo desses parâmetros. A primeira implementação adiciona parâmetros temperature e topK.

Elemento de instalação HTML do app da Web

Esse recurso permite que um site solicite de forma declarativa que os usuários instalem um app da Web. O elemento aceita opcionalmente dois atributos, o que permite instalar conteúdo de uma origem diferente.