Chrome 148

Data de lançamento estável:5 de maio de 2026

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

CSS e interface

Consultas de contêiner somente com nome de CSS

Um contêiner de consulta CSS pode ser consultado com base apenas no nome do contêiner, e ele não precisa de nenhum tipo de contêiner definido:

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

Anteriormente, @container exigia um tipo de contêiner além do nome.

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

Regra @: detecção de recursos CSS

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

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

Formatação de texto e renderização de glifos avar2 do Open Font Format

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, o avar2 permite que os eixos se influenciem. Isso leva a fontes mais fáceis de usar para autores de conteúdo e permite o armazenamento compacto.

O Avar2 funciona usando os mesmos conceitos familiares de variações de fontes, mas aplica os valores delta variáveis às especificações do eixo de design. Além disso, ele permite que você faça isso em uma variedade de eixos.

Por exemplo, ele permite que os designers de fontes criem "controles deslizantes de metadados" que controlam vários eixos de variação de uma só vez, aliviando o usuário de ajustar e encontrar um canto útil do espaço de design da fonte.

O Avar2 oferece aos designers de fontes um melhor controle sobre o espaço de variação utilizável da fonte e permite que eles coordenem 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, levando a tamanhos de arquivo menores, porque a interpolação é armazenada de forma mais eficiente.

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

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 em combinação com condicionais, porque permite eliminar a regra atual se alguma condição não for atendida:

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

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

Carregamento lento para elementos de vídeo e áudio

Adiciona o atributo loading aos elementos <video> e <audio>, permitindo que os desenvolvedores adiem o carregamento de recursos de mídia até que o elemento esteja próximo à janela de visualização usando loading="lazy". Isso corresponde ao comportamento de carregamento lento existente para <img> e <iframe> elementos, melhorando a performance de carregamento da página e reduzindo o uso de dados.

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

text-decoration-skip-ink: all

Adicione 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, enquanto auto deixa os caracteres CJK não ignorados 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 desenvolvedores que ajustaram text-underline-position ou text-underline-offset para evitar conflitos com glifos CJK também podem ativar explicitamente a omissão de tinta para esses caracteres.

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

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. A entrada de arrastar e o arrastar devem ter um dropEffect com base no effectAllowed atual, e dragLeave sempre deve ter um dropEffect none. Atualmente, o Chromium não segue essas regras. Com o lançamento desse recurso, o Chromium vai começar a respeitar a especificação e atribuir os valores corretos a esse atributo para que os desenvolvedores da Web possam começar a confiar nele.

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

Supressão de eventos de ponteiro no início do arrastar

De acordo com a especificação HTML, quando um arrastar é iniciado, o agente do usuário 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 o trabalho nesse recurso, pretendemos 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.

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

Recursos

Localização de manifesto

Oferece suporte à localização de membros do manifesto para que os apps possam adaptar 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, e o navegador seleciona automaticamente os recursos apropriados com base nas configurações de idioma do usuário, introduzindo suporte a idiomas em diferentes mercados.

Saiba mais em Suporte à localização para manifestos de apps da Web.

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

Web no Android

API Web Serial no Android

A API Web Serial oferece uma interface para conectar dispositivos seriais, seja por uma porta serial no sistema do usuário ou por dispositivos USB e Bluetooth removíveis que emulam uma porta serial. Agora, ela 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 uma fresadora, um cortador a laser ou uma impressora 3D, é controlado por um programa em execução em um computador conectado. Esses dispositivos são controlados por pequenos microcontroladores usando uma conexão serial.

Para mais informações, consulte o guia da API Web Serial no web.dev e a especificação da Web Serial.

Bug de rastreamento nº 365514951 | Entrada do ChromeStatus.com

SharedWorker no Android

Por muito tempo, o SharedWorker ficou desativado no Android devido a preocupações com o ciclo de vida imprevisível do processo. As instâncias do SharedWorker podem ser encerradas inesperadamente, sem notificar os usuários ou desenvolvedores da Web.

No entanto, uma discussão recente no GitHub (consulte a discussão do GitHub) sugere que a natureza imprevisível do ciclo de vida do processo do SharedWorker pode não ser um problema tão significativo quanto se pensava. Com base nisso, o SharedWorker está sendo reativado no Android enquanto esse comportamento é investigado para garantir uma experiência estável e confiável.

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

APIs Web

WebGPU: recurso linear_indexing

Esse recurso adiciona funcionalidade à especificação WebGPU após o primeiro envio em um navegador.

Adiciona dois novos valores integrados de sombreador de computação para melhorar a qualidade de vida do usuário. Eles são implementados para todos os back-ends (como polyfills de valores integrados existentes).

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

Modo de interface imediata de autenticação da Web

Um novo modo para navigator.credentials.get() que faz com que a interface de login do navegador seja exibida ao usuário se houver uma chave de acesso ou senha para o site que seja imediatamente conhecida pelo navegador ou, caso contrário, rejeita a promessa com NotAllowedError se não houver essa credencial 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, ao mesmo tempo em que permite um fluxo de página de login tradicional para casos em que não há essas credenciais.

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

Receber recursos de confirmação de pagamento seguro

Adiciona um novo método estático à solicitação de pagamento 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 para que eles possam decidir se querem ou não usar a confirmação de pagamento seguro com esses recursos.

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

Trabalhadores compartilhados com ciclo de vida estendido

Essa atualização adiciona uma nova opção, extendedLifetime: true, ao construtor SharedWorker. Essa nova opção solicita que o worker compartilhado seja mantido ativo mesmo depois que todos os clientes atuais forem descarregados. Isso permite que as páginas realizem trabalhos assíncronos que exigem JavaScript depois que uma página é descarregada, sem precisar depender de um service worker.

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

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 com formas de API na nuvem, para aprimorar progressivamente os sites com interações de modelo personalizadas para casos de uso individualizados. Isso complementa as APIs de modelo de linguagem baseadas em tarefas, por exemplo, a API Summarizer, bem como uma variedade de APIs e frameworks 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. Além disso, as restrições de resposta garantem que o texto gerado esteja em conformidade com formatos de expressão regular e esquema JSON predefinidos.

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

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

Rede e conectividade

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 o ICU, em que essa regra é implementada.

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

Reutilizar imagens no-store na reatribuição de mesma origem

Permitir a reutilização de imagens disponíveis no mesmo documento para ignorar o Cache-Control: no-store reload quando o mesmo valor src é reatribuído a um <img> elemento. 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.

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

Desempenho

ContentType no Resource Timing

Adiciona o campo contentType ao PerformanceResourceTiming para armazenar uma string correspondente ao cabeçalho HTTP Content-Type do recurso buscado, conforme retornado pelo servidor.

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

WebRTC Datachannel: sempre negociar canais de dados

Implementa uma extensão WebRTC alwaysNegotiateDataChannels que define uma maneira de o aplicativo negociar canais de dados na oferta de SDP antes de criar um datachannel. Isso também negocia a seção de dados m= antes de qualquer seção de áudio ou vídeo m e a usa como a "seção m= marcada pelo ofertante" para BUNDLE.

Isso significa que:

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

vai criar uma oferta com uma linha m de aplicativo no SDP e que:

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

vai criar uma oferta que negocia uma linha m de aplicativo seguida por uma linha m de áudio no SDP.

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

Novos testes de origem

Scripts de módulos CSS declarativos

Os scripts de módulos CSS declarativos são uma extensão dos scripts de módulos 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 in-line com <style type="module" specifier="foo"> e aplicar um módulo declarativo a um DOM paralelo declarativo referenciando o especificador ou um URL, como <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.

Teste de origem | Bug de rastreamento nº 448174611 | Entrada do ChromeStatus.com | Especificação

API Container Timing

A API Container Timing permite monitorar quando as seções anotadas do DOM são exibidas na tela e terminaram a pintura inicial. Um desenvolvedor terá a capacidade de marcar subseções do DOM com o atributo containertiming (semelhante a elementtiming para a API Element Timing) e receber entradas de performance quando essa seção for pintada pela primeira vez. Essa API vai permitir que os desenvolvedores meçam o tempo de vários componentes nas páginas.

Teste de origem | Bug de rastreamento nº 382422286 | Entrada do ChromeStatus.com | Especificação

Elemento de instalação HTML do app da Web

Permite que um site solicite declarativamente aos usuários que instalem um app da Web. O elemento aceita opcionalmente dois atributos que permitem a instalação de conteúdo de uma origem diferente.

Teste de origem | Bug de rastreamento nº 454827186 | Entrada do ChromeStatus.com | Especificação

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

Adicione informações styleDuration e forcedStyleDuration à API Long Animation Frame, permitindo que os desenvolvedores distingam os tempos de estilo e layout.

Teste de origem | Bug de rastreamento nº 476826067 | Entrada do ChromeStatus.com | Especificação

HTML na tela

O HTML na tela permite personalizar a renderização de HTML usando a tela com três novas primitivas: um atributo para ativar elementos de tela (layoutsubtree), métodos para desenhar elementos filhos (2D: drawElementImage, WebGL: texElementImage2D, WebGPU: copyElementImageToTexture) e um evento de pintura que é acionado para processar atualizações.

Teste de origem | Bug de rastreamento nº 500967896 | Entrada do ChromeStatus.com | Especificação

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 usando a API Fetch ou outras APIs da plataforma da Web de um documento ou worker.

A implementação proposta envolve a distribuição de uma lista de endpoints autorizados do servidor por um cabeçalho de resposta HTTP. Antes do estabelecimento de qualquer conexão pelo user agent em nome de uma página, o agente vai avaliar o destino em relação a essa lista de permissões. As conexões com endpoints verificados serão permitidas, enquanto aquelas que não corresponderem às entradas na lista serão bloqueadas.

Teste de origem | Bug de rastreamento nº 447954811 | Entrada do ChromeStatus.com | Especificação

Parâmetros de amostragem da API Prompt

Adiciona parâmetros de amostragem à API Prompt. Eles controlam como os tokens são amostrados do modelo, 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, bem como uma função LanguageModel estática para receber os valores padrão e máximos desses parâmetros.

A primeira implementação adiciona parâmetros temperature e topK.

Teste de origem | Bug de rastreamento nº 496663356 | Entrada do ChromeStatus.com | Especificação

Analisar instruções de processamento em HTML

As instruções de processamento (sintaxe: <?target data>) são uma construção DOM existente, exposta em XML, que permite objetos de nó que não são elementos, mas podem ter algum significado semântico para o processamento de um documento.

Por exemplo, elas podem ser usadas para indicar intervalos para streaming ou destaque sem exigir novos elementos DOM e mudar a estrutura do DOM no que diz respeito ao CSS ou como diretivas para o analisador HTML sobre como armazenar em buffer e transmitir.

Bug de rastreamento nº 481087638 | Entrada do ChromeStatus.com

OpaqueRange

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

Ele permite operações como getBoundingClientRect(), getClientRects() e integração com a API CSS Custom Highlight para interfaces como sugestões in-line, destaques e pop-ups ancorados. Ele preserva o encapsulamento expondo apenas deslocamentos de valor ao retornar null para startContainer e endContainer, de modo que os endpoints DOM e a estrutura interna não sejam expostos.

Teste de origem | Bug de rastreamento nº 421421332 | Entrada do ChromeStatus.com