Chrome 148

Data di rilascio della versione stabile: 5 maggio 2026

Se non diversamente indicato, le seguenti modifiche si applicano alla release del canale stabile di Chrome 148 per Android, ChromeOS, Linux, macOS e Windows.

CSS e UI

Query sui contenitori solo con nome CSS

È possibile eseguire query su un contenitore di query CSS solo in base al nome del contenitore e non è necessario impostare alcun tipo di contenitore:

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

In precedenza, @container richiedeva un tipo di contenitore oltre al nome.

Bug di monitoraggio n. 40287550 | Voce di ChromeStatus.com | Specifica

Regola @: rilevamento delle funzionalità CSS

Questa funzionalità aggiunge una funzione at-rule() al CSS @supports che consente agli autori di rilevare il supporto delle regole CSS @.

Bug di monitoraggio n. 40211832 | Voce di ChromeStatus.com | Specifica

Open Font Format avar2 text shaping and glyph rendering

La versione 2 della tabella avar (Axis Variations) consente ai progettisti di caratteri di creare caratteri variabili con un migliore controllo dell'interpolazione. Mentre la specifica del carattere variabile originale gestisce gli assi in modo indipendente, avar2 consente agli assi di influenzarsi a vicenda. Ciò porta a caratteri più facili da usare per gli autori di contenuti e consente l'archiviazione compatta.

Avar2 funziona utilizzando gli stessi concetti familiari delle varianti di carattere, ma applica i valori delta delle variabili alle specifiche dell'asse di progettazione. Inoltre, ti consente di farlo su un intervallo di più assi.

Ad esempio, consente ai progettisti di caratteri di creare "cursori meta" che controllano più assi di variazione contemporaneamente, sollevando l'utente dalla messa a punto e dalla ricerca di un angolo utile dello spazio di progettazione del carattere.

Avar2 offre ai progettisti di caratteri un maggiore controllo sullo spazio di variazione utilizzabile del carattere e consente di coordinare la regolazione degli assi di progettazione su più assi.

Definendo matematicamente le relazioni tra gli assi all'interno della tabella avar versione 2, i caratteri possono ottenere design complessi con meno master, il che porta a dimensioni dei file più piccole, perché l'interpolazione viene memorizzata in modo più efficiente.

Bug di monitoraggio n. 40246300 | Voce di ChromeStatus.com | Specifica

Parola chiave revert-rule

La parola chiave revert-rule esegue il rollback della cascata alla regola precedente, in modo simile a come revert-layer esegue il rollback della cascata al livello precedente. Ad esempio:

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

Ciò è particolarmente utile in combinazione con le condizioni, perché ti consente di eliminare la regola corrente se una condizione non è soddisfatta:

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

Bug di monitoraggio n. 393582263 | Voce di ChromeStatus.com | Specifica

Caricamento lento per gli elementi video e audio

Aggiunge l'attributo loading agli elementi <video> e <audio>, consentendo agli sviluppatori di posticipare il caricamento delle risorse multimediali finché l'elemento non si trova vicino alla visualizzazione utilizzando loading="lazy". Ciò corrisponde al comportamento di caricamento lento esistente per gli elementi <img> e <iframe>, migliorando il rendimento del caricamento pagina e riducendo l'utilizzo dei dati.

Bug di monitoraggio n. 469111735 | Voce di ChromeStatus.com | Specifica

text-decoration-skip-ink: all

Aggiungi il supporto per il valore all per la proprietà CSS text-decoration-skip-ink.

La proprietà text-decoration-skip-ink supporta già auto e none. Il valore all estende questa funzionalità applicando in modo incondizionato la rimozione dell'inchiostro a tutti i glifi, inclusi i caratteri CJK, mentre auto lascia i caratteri CJK senza rimozione perché la rimozione dell'inchiostro tende a produrre risultati visivi indesiderati per i sistemi di scrittura ideografici nelle posizioni tipiche della sottolineatura.

Con text-decoration-skip-ink: all, gli sviluppatori che hanno modificato text-underline-position o text-underline-offset per evitare conflitti con i glifi CJK possono attivare esplicitamente il salto dell'inchiostro anche per questi caratteri.

Bug di monitoraggio n. 40675832 | Voce di ChromeStatus.com | Specifica

Imposta correttamente dropEffect per gli eventi dragEnter, dragLeave e dragOver

Le specifiche di trascinamento richiedono che l'attributo dropEffect dell'oggetto dataTransfer abbia determinati valori predeterminati su dragEnter, dragOver e dragLeave. Il trascinamento e l'inserimento devono avere un valore dropEffect in base al valore effectAllowed corrente e dragLeave deve sempre avere un valore none dropEffect. Al momento, Chromium non rispetta queste regole. Con l'introduzione di questa funzionalità, Chromium inizierà a rispettare la specifica e ad assegnare i valori corretti a questo attributo, in modo che gli sviluppatori web possano iniziare a fare affidamento su di esso.

Bug di monitoraggio n. 434151262 | Voce di ChromeStatus.com | Specifica

Soppressione dell'evento puntatore all'inizio del trascinamento

Secondo la specifica HTML, quando inizia un trascinamento, lo user agent deve inviare gli eventi appropriati all'origine del trascinamento per indicare che il flusso di eventi del puntatore è terminato e che non deve aspettarsi altri eventi da questo puntatore. Questo codice è stato implementato parzialmente per gli eventi del mouse e completamente per i trascinamenti touch su Android. Con il lavoro svolto in questa funzionalità, miriamo a soddisfare completamente questo requisito delle specifiche su tutte le altre piattaforme. In pratica, ciò significa che dopo l'inizio di un trascinamento, l'origine del trascinamento riceverà gli eventi pointercancel, pointerout e pointerleave per indicare che il flusso di eventi corrente è terminato.

Bug di monitoraggio n. 452372355 | Voce di ChromeStatus.com | Specifica

Funzionalità

Localizzazione del manifest

Supporta la localizzazione dei membri del manifest in modo che le app possano adattare nomi, descrizioni, icone e scorciatoie alla lingua e alla regione dell'utente. Gli sviluppatori forniscono valori localizzati nel manifest dell'app web e il browser seleziona automaticamente le risorse appropriate in base alle impostazioni della lingua dell'utente, introducendo il supporto linguistico in diversi mercati.

Scopri di più in Supporto della localizzazione per i manifest delle app web.

Bug di monitoraggio n. 380491647 | Voce di ChromeStatus.com | Specifica

Web su Android

API Web Serial su Android

L'API Web Serial fornisce un'interfaccia per la connessione a dispositivi seriali, tramite una porta seriale sul sistema dell'utente o dispositivi USB e Bluetooth rimovibili che emulano una porta seriale. Ora è supportata su Android.

Gli utenti, in particolare nei settori dell'istruzione, degli hobbisti e dell'industria, collegano periferiche ai propri computer che richiedono software personalizzato per il controllo. Ad esempio, la robotica viene spesso utilizzata per insegnare programmazione informatica ed elettronica nelle scuole. Per questa operazione è necessario un software in grado di caricare codice su un robot o controllarlo da remoto. In un contesto industriale o hobbistico, un'apparecchiatura come una fresatrice, una taglierina laser o una stampante 3D è controllata da un programma in esecuzione su un computer connesso. Questi dispositivi sono spesso controllati da piccoli microcontrollori che utilizzano una connessione seriale.

Per saperne di più, consulta la guida all'API Web Serial su web.dev e le specifiche di Web Serial.

Bug di monitoraggio n. 365514951 | Voce di ChromeStatus.com

SharedWorker su Android

Per molto tempo, SharedWorker è stato disattivato su Android a causa di problemi relativi al suo ciclo di vita del processo imprevedibile. Le istanze SharedWorker potrebbero terminare in modo imprevisto, senza avvisare gli utenti o gli sviluppatori web.

Tuttavia, una recente discussione su GitHub (vedi la discussione su GitHub) suggerisce che la natura imprevedibile del ciclo di vita del processo di SharedWorker potrebbe non essere un problema così significativo come si pensava in precedenza. In base a questo, SharedWorker viene riattivato su Android mentre questo comportamento viene esaminato per garantire un'esperienza stabile e affidabile.

Bug di monitoraggio n. 40290702 | Voce di ChromeStatus.com | Specifica

API web

WebGPU: funzionalità linear_indexing

Questa funzionalità aggiunge funzionalità alla specifica WebGPU dopo la prima spedizione in un browser.

Aggiunge due nuovi valori integrati dello shader di calcolo per migliorare la qualità della vita degli utenti. Questi valori vengono implementati per tutti i backend (come polyfill dei valori integrati esistenti).

Bug di monitoraggio n. 482840564 | Voce di ChromeStatus.com | Specifica

Modalità UI immediata di autenticazione web

Una nuova modalità per navigator.credentials.get() che fa sì che l'interfaccia utente di accesso al browser venga visualizzata all'utente se esiste una passkey o una password per il sito che è immediatamente nota al browser, altrimenti rifiuta la promessa con NotAllowedError se non sono disponibili queste credenziali. In questo modo, il sito può evitare di mostrare una pagina di accesso se il browser può offrire una scelta di credenziali di accesso che hanno maggiori probabilità di successo, consentendo comunque un flusso di pagine di accesso tradizionale per i casi in cui non sono presenti tali credenziali.

Bug di monitoraggio n. 408002783 | Voce di ChromeStatus.com | Specifica

Ottenere funzionalità di conferma del pagamento sicura

Aggiunge un nuovo metodo statico alla richiesta di pagamento che consente agli sviluppatori web di ottenere le funzionalità dell'implementazione della conferma del pagamento sicuro del browser.

In questo modo, gli sviluppatori web possono sapere quali funzionalità sono disponibili per la conferma del pagamento sicuro e decidere se utilizzarla o meno con queste funzionalità.

Bug di monitoraggio n. 484043990 | Voce di ChromeStatus.com | Specifica

SharedWorker con durata estesa

Questo aggiornamento aggiunge una nuova opzione, extendedLifetime: true, al costruttore SharedWorker. Questa nuova opzione richiede che il worker condiviso rimanga attivo anche dopo che tutti i client attuali sono stati scaricati. In questo modo, le pagine possono eseguire operazioni asincrone che richiedono JavaScript dopo lo scaricamento di una pagina, senza dover fare affidamento su un service worker.

Bug di monitoraggio n. 400473072 | Voce di ChromeStatus.com | Specifica

API Prompt

L'API Prompt offre agli sviluppatori web l'accesso diretto a un modello linguistico AI sul dispositivo fornito dal browser. La progettazione dell'API offre un controllo granulare, in linea con le forme delle API cloud, per migliorare progressivamente i siti con interazioni del modello personalizzate in base a casi d'uso individuali. Ciò integra le API per modelli linguistici basati su attività, ad esempio l'API Summarizer, nonché una varietà di API e framework per l'inferenza generalizzata sul dispositivo con modelli ML forniti dagli sviluppatori.

L'implementazione iniziale supporta input di testo, immagini e audio. Inoltre, i vincoli di risposta assicurano che il testo generato sia conforme ai formati di espressioni regolari e schema JSON predefiniti.

Supporta una serie di casi d'uso, dalla generazione di sottotitoli codificati per le immagini e l'esecuzione di ricerche visive alla trascrizione dell'audio, alla classificazione degli eventi sonori, alla generazione di testo seguendo istruzioni specifiche e all'estrazione di informazioni o approfondimenti da materiale di origine multimodale.

Bug di monitoraggio n. 417526788 | Voce di ChromeStatus.com | Specifica

Rete e connettività

Regole IDNA ContextJ

IDNA è il meccanismo per i caratteri non ASCII nei nomi di dominio. Codifica un URL come http://네이버.한국/ in http://xn--950bt9s8xi.xn--3e0b707e/ (un reindirizzamento a naver.com).

La specifica dell'URL imposta il flag CheckJoiners, che attiva le regole ContextJ in IDNA2008. Ciò non consente l'utilizzo di ZWNJ (U+200C ZERO WIDTH NON-JOINER) e ZWJ (U+200D ZERO WIDTH JOINER) nella maggior parte delle posizioni degli URL. L'implementazione passa l'opzione UIDNA_CHECK_CONTEXTJ a ICU, dove viene implementata questa regola.

Bug di monitoraggio n. 40765949 | Voce di ChromeStatus.com | Specifica

Riutilizzare le immagini senza negozio nella riassegnazione con stessa origine

Consenti il riutilizzo della stessa immagine disponibile nello stesso documento per ignorare il ricaricamento Cache-Control: no-store quando lo stesso valore src viene riassegnato a un elemento <img>. In precedenza, Blink recuperava di nuovo l'immagine anche se era già stata decodificata e disponibile nel documento. Ciò è in linea con il comportamento esistente di Gecko e WebKit.

Bug di monitoraggio n. 486562295 | Voce di ChromeStatus.com | Specifica

Rendimento

ContentType in Resource Timing

Aggiunge il campo contentType a PerformanceResourceTiming per contenere una stringa corrispondente all'intestazione HTTP Content-Type della risorsa recuperata restituita dal server.

Bug di monitoraggio n. 1366706 | Voce di ChromeStatus.com | Specifica

WebRTC Datachannel: Always negotiate data channels

Implementa un'estensione WebRTC alwaysNegotiateDataChannels che definisce un modo per l'applicazione di negoziare i canali di dati nell'offerta SDP prima di creare un canale di dati. Inoltre, negozia la sezione dati m= prima di qualsiasi sezione m audio o video e la utilizza come "sezione m= con tag dell'offerente" per BUNDLE.

Ciò significa che:

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

creerà un'offerta con una linea m dell'applicazione nell'SDP e che:

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

creerà un'offerta che negozia una linea m dell'applicazione seguita da una linea m audio nell'SDP.

Bug di monitoraggio n. 433898678 | Voce di ChromeStatus.com | Specifica

Nuove prove dell'origine

Script del modulo CSS dichiarativi

Gli script dei moduli CSS dichiarativi sono un'estensione degli script dei moduli CSS esistenti basati su script. Consentono agli sviluppatori di condividere fogli di stile dichiarativi con radici ombra, incluse le radici ombra dichiarative. Gli sviluppatori possono definire moduli di stile in linea con <style type="module" specifier="foo"> e applicare un modulo dichiarativo a un DOM ombra dichiarativo facendo riferimento a uno specificatore o a un URL, ad esempio <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.

Origin Trial | Tracking bug #448174611 | ChromeStatus.com entry | Spec

API Container Timing

L'API Container Timing consente di monitorare quando le sezioni annotate del DOM vengono visualizzate sullo schermo e hanno terminato il rendering iniziale. Uno sviluppatore avrà la possibilità di contrassegnare le sottosezioni del DOM con l'attributo containertiming (simile a elementtiming per l'API Element Timing) e ricevere voci sulle prestazioni quando la sezione è stata visualizzata per la prima volta. Questa API consentirà agli sviluppatori di misurare la tempistica di vari componenti nelle loro pagine.

Origin Trial | Tracking bug #382422286 | Voce di ChromeStatus.com | Specifica

Elemento di installazione HTML dell'app web

Consente a un sito web di chiedere in modo dichiarativo agli utenti di installare un'app web. L'elemento accetta facoltativamente due attributi che consentono l'installazione di contenuti da un'origine diversa.

Origin Trial | Tracking bug #454827186 | ChromeStatus.com entry | Spec

Durata dello stile dei frame dell'animazione lunga

Aggiungi le informazioni styleDuration e forcedStyleDuration all'API Long Animation Frame, consentendo agli sviluppatori di distinguere i tempi di stile e layout.

Origin Trial | Tracking bug #476826067 | ChromeStatus.com entry | Spec

HTML nell'area di lavoro

HTML in canvas consente di personalizzare il rendering dell'HTML utilizzando canvas con tre nuove primitive: un attributo per attivare gli elementi canvas (layoutsubtree), metodi per disegnare gli elementi secondari (2D: drawElementImage, WebGL: texElementImage2D, WebGPU: copyElementImageToTexture) e un evento di disegno che viene attivato per gestire gli aggiornamenti.

Prova dell'origine | Bug di monitoraggio n. 500967896 | Voce di ChromeStatus.com | Specifica

Liste consentite di connessioni

Gli elenchi consentiti di connessioni sono una funzionalità progettata per fornire un controllo esplicito sugli endpoint esterni limitando le connessioni avviate utilizzando l'API Fetch o altre API della piattaforma web da un documento o un worker.

L'implementazione proposta prevede la distribuzione di un elenco di endpoint autorizzati dal server tramite un'intestazione della risposta HTTP. Prima di stabilire qualsiasi connessione da parte dello user agent per conto di una pagina, l'agente valuterà la destinazione in base a questa lista consentita; le connessioni agli endpoint verificati saranno consentite, mentre quelle che non corrispondono alle voci dell'elenco verranno bloccate.

Origin Trial | Tracking bug #447954811 | ChromeStatus.com entry | Spec

Parametri di campionamento dell'API Prompt

Aggiunge parametri di campionamento all'API Prompt. Questi controlli determinano la modalità di campionamento dei token dal modello, consentendo agli sviluppatori di controllare la "creatività" o la "casualità" dell'output. Inoltre, aggiunge attributi all'istanza LanguageModel per leggere i valori impostati, nonché una funzione statica LanguageModel per ottenere i valori predefiniti e massimi di questi parametri.

La prima implementazione aggiunge i parametri temperature e topK.

Origin Trial | Tracking bug #496663356 | ChromeStatus.com entry | Spec

Analizza le istruzioni di elaborazione in HTML

Le istruzioni di elaborazione (sintassi: <?target data>) sono un costrutto DOM esistente, esposto in XML, che consente agli oggetti nodo che non sono elementi, ma possono avere un significato semantico per l'elaborazione di un documento.

Ad esempio, possono essere utilizzati per indicare intervalli per lo streaming o l'evidenziazione senza richiedere nuovi elementi DOM e modificare la struttura DOM per quanto riguarda CSS o come direttive per l'analizzatore HTML su come memorizzare nel buffer e trasmettere in streaming.

Bug di monitoraggio n. 481087638 | Voce di ChromeStatus.com

OpaqueRange

OpaqueRange rappresenta un intervallo di testo dinamico all'interno del valore di un controllo modulo, ad esempio un <textarea> o un <input> basato su testo, in modo che gli sviluppatori possano lavorare con il testo del valore utilizzando API simili a intervalli.

Consente operazioni come getBoundingClientRect(), getClientRects() e l'integrazione con l'API CSS Custom Highlight per UI come suggerimenti in linea, evidenziazioni e popup ancorati. Preserva l'incapsulamento esponendo solo gli offset dei valori durante la restituzione di null per startContainer e endContainer, in modo che gli endpoint DOM e la struttura interna non vengano esposti.

Origin Trial | Tracking bug #421421332 | Voce di ChromeStatus.com