Data di pubblicazione: 8 aprile 2026
Se non diversamente indicato, le seguenti modifiche si applicano alla versione più recente del canale beta di Chrome per Android, ChromeOS, Linux, macOS e Windows. Scopri di più su queste funzionalità utilizzando i link forniti o visitando ChromeStatus.com. Chrome è in versione beta a partire da questa release. Puoi scaricare l'ultima versione beta da Google.com per computer o dal Google Play Store su Android.
CSS e UI
Query dei contenitori solo con nome in CSS
Ora puoi eseguire query su un contenitore CSS in base solo al suo container-name
senza impostare un container-type sull'elemento.
#container {
container-name: --foo;
}
@container --foo {
input { background-color: green; }
}
<div id="container">
<div><input></div>
</div>
Tronca l'overflow di testo durante l'interazione dell'utente
Quando un utente interagisce (ad esempio modificando o utilizzando la navigazione con il cursore del testo) con
testo con text-overflow: ellipsis impostato, il testo passa temporaneamente
dai puntini di sospensione al troncamento. In questo modo l'utente può vedere e interagire con i contenuti nascosti
in overflow. Questa funzionalità si applica a tutti gli elementi modificabili e non modificabili. Per i controlli dei moduli, come <textarea> e <input>, questo comportamento è già supportato.
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. dragEnter e dragOver devono avere un
dropEffect basato sull'effectAllowed corrente. dragLeave deve sempre
avere un none dropEffect. Al momento, Chrome non rispetta queste regole.
A partire da Chrome 148, Chrome rispetterà la specifica e
assegnerà i valori corretti a questo attributo.
Caricare lentamente gli elementi video e audio
Questa funzionalità aggiunge l'attributo loading agli elementi <video> e <audio>.
In questo modo, gli sviluppatori possono posticipare il caricamento delle risorse multimediali finché l'elemento non si trova vicino all'area visibile utilizzando loading="lazy". Questo comportamento corrisponde al caricamento lento esistente per gli elementi <img> e <iframe>, il che migliora il caricamento pagina e riduce l'utilizzo dei dati.
Funzione CSS at-rule() per il rilevamento delle funzionalità
Questa funzionalità aggiunge una funzione at-rule() al CSS @supports, che consente agli autori
di rilevare il supporto delle regole CSS @.
Aggiungi la 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 */ }
Questa funzionalità è particolarmente utile con le condizioni perché consente di eliminare la regola corrente se una condizione non è soddisfatta:
div {
display: if(style(--layout: fancy): grid; else: revert-rule);
}
Sostieni text-decoration-skip-ink: all
Questa funzionalità aggiunge 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 il salto dell'inchiostro a tutti i glifi,
inclusi i caratteri CJK. Al contrario, auto non salta i caratteri CJK
perché la rimozione dell'inchiostro tende a produrre risultati visivi indesiderati per i caratteri
ideografici nelle posizioni tipiche della sottolineatura. Con text-decoration-skip-ink: all,
gli autori che hanno modificato text-underline-position o text-underline-offset
per evitare conflitti con i glifi CJK possono attivare esplicitamente la rimozione dell'inchiostro per
questi caratteri.
API web
Localizzare i membri del manifest
Questa funzionalità supporta la localizzazione dei membri del manifest, consentendo alle app di adattare i nomi, le descrizioni, le icone e le scorciatoie alla lingua e alla regione dell'utente. Gli sviluppatori forniscono valori localizzati nel manifest dell'app web. Il browser seleziona automaticamente le risorse appropriate in base alle impostazioni della lingua dell'utente, il che introduce il supporto linguistico in diversi mercati.
Supporto del formato Open Font avar2 per la modellazione del testo e il rendering dei glifi
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. In questo modo, gli autori dei contenuti possono utilizzare più facilmente i caratteri e lo spazio di archiviazione è più compatto.
Avar2 funziona utilizzando gli stessi concetti familiari delle varianti di carattere, ma
consente di applicare valori delta variabili agli assi di progettazione stessi. Puoi farlo su una serie di più assi.
Ad esempio, puoi creare meta-cursori che controllano più assi di variazione contemporaneamente. In questo modo, l'utente non deve più eseguire la messa a punto e trovare un angolo utile dello spazio di progettazione del carattere.
Avar2 offre ai progettisti di caratteri un migliore controllo sullo spazio di variazione utilizzabile del carattere e consente loro 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 un numero inferiore di master. In questo modo,
le dimensioni dei file sono più ridotte perché l'interpolazione viene memorizzata in modo più
efficiente.
Modalità UI immediata di autenticazione web
Questa nuova modalità per navigator.credentials.get() fa sì che l'interfaccia utente di accesso al browser
venga visualizzata all'utente se il browser conosce immediatamente
una passkey o una password per il sito. In caso contrario, rifiuta la promessa con NotAllowedError se non è disponibile alcuna credenziale. In questo modo, il sito evita di mostrare una pagina di accesso se
il browser può offrire una scelta di credenziali di accesso che hanno maggiori probabilità di
andare a buon fine. Consente comunque un flusso di pagine di accesso per i casi in cui non esistono
credenziali di questo tipo.
Supporto dell'API Web Serial su Android
L'API Web Serial fornisce un'interfaccia per la connessione ai dispositivi seriali. Questi dispositivi possono connettersi tramite una porta seriale sul sistema dell'utente o tramite dispositivi USB e Bluetooth rimovibili che emulano una porta seriale. L'API è 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 il codice su un robot o controllarlo da remoto. In un contesto industriale o hobbistico, un'apparecchiatura, come una fresatrice, un laser cutter o una stampante 3D, è controllata da un programma in esecuzione su un computer connesso. Questi dispositivi sono spesso controllati da piccoli microcontrollori tramite una connessione seriale.
Funzionalità WebGPU linear_indexing
Questa funzionalità aggiunge due nuovi valori integrati dello shader di calcolo per migliorare l'esperienza utente. Questi valori vengono implementati per tutti i backend (come polyfill dei valori incorporati esistenti).
Supporto di SharedWorker su Android
Per molto tempo, SharedWorker è stato disattivato su Android a causa di problemi
relativi al suo ciclo di vita imprevedibile. Gli sviluppatori di Chrome ritenevano che le istanze di SharedWorker potessero terminare in modo imprevisto senza avvisare gli utenti o gli sviluppatori web. Questo è stato considerato inaccettabile.
Tuttavia, una recente 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, Chrome sta riattivando
SharedWorker su Android mentre esamina contemporaneamente questo comportamento per
garantire un'esperienza stabile e affidabile.
Durata estesa per i lavoratori condivisi
Questo aggiornamento aggiunge una nuova opzione, extendedLifetime: true, al costruttore SharedWorker. In questo modo, il service worker condiviso rimane attivo anche dopo lo scaricamento di tutti i
client attuali. Il caso d'uso principale è consentire alle pagine di eseguire
un lavoro asincrono che richiede JavaScript dopo lo scaricamento di una pagina, senza dover
fare affidamento su un service worker.
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. In questo modo, puoi migliorare progressivamente i siti con interazioni del modello personalizzate per casi d'uso individuali. Ciò integra le API dei modelli linguistici basati su attività (ad esempio l'API Summarizer) e varie 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, nonché vincoli di risposta che garantiscono che il testo generato sia conforme ai formati di espressione regolare e schema JSON predefiniti.
Ciò supporta una serie di casi d'uso. Ad esempio, può generare didascalie per le immagini, eseguire ricerche visive, trascrivere audio, classificare eventi sonori, generare testo seguendo istruzioni specifiche ed estrarre informazioni o approfondimenti da materiale di origine multimodale.
Questa API è già stata implementata nelle estensioni di Chrome. Questo intent monitora la
spedizione sul web. Una policy aziendale,
GenAILocalFoundationalModelSettings, è disponibile per disattivare il download del modello
sottostante, il che rende questa API non disponibile. Gli amministratori aziendali possono
anche impostare il criterio BuiltInAIAPIsEnabled per bloccare l'utilizzo dell'API AI integrata, consentendo comunque altre funzionalità di AI generativa on-device.
Log del supporto delle lingue:
- Chrome 139 e versioni precedenti supportavano solo l'inglese (
'en') - Chrome 140 ha aggiunto il supporto per lo spagnolo e il giapponese (
'es'e'ja')
Ottenere le funzionalità di conferma del pagamento sicuro
Questa funzionalità aggiunge un nuovo metodo statico all'API Payment Request che consente agli sviluppatori web di ottenere le funzionalità dell'implementazione di Secure Payment Confirmation del browser. In questo modo, gli sviluppatori web possono sapere quali funzionalità sono disponibili per la conferma del pagamento sicuro. Potrà quindi decidere se utilizzare la conferma di pagamento sicura con queste funzionalità.
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.
Riutilizzare le immagini senza negozio per la riassegnazione dello stesso attributo src
Questa funzionalità consente il riutilizzo delle immagini disponibili nello stesso documento per bypassare il ricaricamento di 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. Questo comportamento è in linea con quello esistente di Gecko e WebKit.
Aggiungi il campo contentType a Resource Timing
Questa funzionalità aggiunge il campo contentType a PerformanceResourceTiming per contenere
una stringa che corrisponde al tipo di contenuti della risorsa recuperata, come
restituito dal server.
Suppress pointer events on drag start (Disattiva gli eventi del 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 questa funzionalità, Chrome mira 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.
WebRTC Datachannel: Always negotiate data channels
Questa funzionalità implementa un'estensione WebRTC, alwaysNegotiateDataChannels, che
definisce un modo per un'applicazione di negoziare i canali di dati in un'offerta SDP
prima di creare un canale di dati. Inoltre, negozia la sezione m= dei dati prima di qualsiasi sezione m audio o video e la utilizza come "sezione m= con tag dell'offerente" per [BUNDLE].
Ciò significa che se crei un RTCPeerConnection con
alwaysNegotiateDataChannels: true e poi chiami createOffer(), viene creata un'offerta
con una riga m dell'applicazione nell'SDP. Ad esempio:
const pc = new RTCPeerConnection({
alwaysNegotiateDataChannels: true});
const offer = await pc.createOffer();
Se aggiungi anche un ricetrasmettitore audio e un canale di dati, l'offerta negozia una linea m applicazione seguita da una linea m audio nell'SDP:
const pc = new RTCPeerConnection({
alwaysNegotiateDataChannels: true});
pc.addTransceiver('audio');
pc.createDataChannel('somechannel');
const offer = await pc.createOffer();
Nuove prove dell'origine
In Chrome 148, puoi attivare le seguenti nuove prove dell'origine.
Accesso federato con agenti
Un insieme di estensioni FedCM per aiutare i browser agentici ad accedere in sicurezza ai siti web utilizzando i propri account federati.
Liste consentite di connessioni
Le liste consentite di connessioni sono una funzionalità progettata per fornire un controllo esplicito sugli endpoint esterni limitando le connessioni avviate tramite l'API Fetch o altre API della piattaforma web da un documento o un worker. L'implementazione proposta distribuisce un elenco di endpoint autorizzati dal server tramite un'intestazione di risposta HTTP. Prima che l'user agent stabilisca una connessione per conto di una pagina, valuta la destinazione in base a questa lista consentita. Le connessioni agli endpoint verificati sono consentite, mentre quelle che non corrispondono alle voci dell'elenco vengono bloccate.
Container Timing
L'API Container Timing consente di monitorare il momento in cui le sezioni annotate del DOM vengono
visualizzate sullo schermo e hanno completato il rendering iniziale. Puoi contrassegnare
le sottosezioni del DOM con l'attributo containertiming (simile a
elementtiming per l'API Element Timing) e ricevere voci di rendimento quando
la sezione è stata visualizzata per la prima volta. Questa API ti consente di misurare
la tempistica di vari componenti nelle tue pagine.
Script di moduli 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
shadow, incluse le radici shadow 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 specifier o a un URL, ad esempio <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.
HTML nell'area di lavoro
HTML-in-canvas è una nuova API che ti consente di personalizzare gli elementi DOM di rendering
direttamente in una texture Canvas o WebGL / WebGPU mantenendo l'interattività
e l'accessibilità dei contenuti. È composto da tre parti:
un attributo per attivare gli elementi canvas (layoutsubtree),
metodi per disegnare gli elementi secondari (2d: drawElementImage,
webgl:texElementImage2D, webgpu: copyElementImageToTexture),
e un modo per aggiornare correttamente la trasformazione dell'elemento
sullo schermo per l'interattività.
Durata dello stile dei frame dell'animazione lunghi
Questa funzionalità aggiunge informazioni su styleDuration e forcedStyleDuration all'API Long Animation Frame. In questo modo, gli sviluppatori possono distinguere i tempi di stile e layout.
OpaqueRange
OpaqueRange rappresenta un intervallo di testo attivo all'interno del valore di un controllo modulo
(ad esempio, un <textarea> o un testo <input>),
in modo che gli sviluppatori possano lavorare con il testo del valore utilizzando API simili a intervalli.
Consente operazioni come getBoundingClientRect(), getClientRects()
e l'utilizzo con l'API CSS Highlights per UI come suggerimenti in linea,
evidenziazioni e popup ancorati. Preserva l'incapsulamento esponendo solo
gli offset dei valori (e restituendo null per startContainer e endContainer),
in modo che gli endpoint DOM e la struttura interna non vengano esposti.
Analizza le istruzioni di elaborazione in HTML
Le istruzioni di elaborazione (sintassi: <?target data>) sono un costrutto DOM esistente, esposto in XML. Questa struttura consente agli oggetti nodo che non sono
elementi di avere un significato semantico per l'elaborazione di un documento. Ad esempio, puoi utilizzarli per indicare intervalli per lo streaming o l'evidenziazione senza richiedere nuovi elementi DOM e modificare la struttura DOM per quanto riguarda il CSS. Puoi anche utilizzarli come direttive per l'analizzatore HTML su come
memorizzare nel buffer e trasmettere in streaming.
Policy sulle autorizzazioni: focus-without-user-activation
Questa policy consente agli incorporatori di controllare lo stato attivo programmatico dei contenuti incorporati tramite la policy delle autorizzazioni focus-without-user-activation. Quando
la policy viene negata per un frame, le chiamate di messa a fuoco programmatica (element.focus(),
autofocus, window.focus(), dialog.showModal() e messa a fuoco dei popup) vengono
bloccate, a meno che non vengano attivate dall'utente. La messa a fuoco avviata dall'utente, ad esempio
tramite clic o tabulazione, non viene mai interessata. Puoi impostare il criterio tramite un'intestazione della risposta HTTP Permissions-Policy o l'attributo iframe allow. La delega
della messa a fuoco è supportata. Un frame principale attivo può trasferire
programmaticamente lo stato attivo a un iframe secondario, anche se la policy è stata negata. Una volta che un frame
ha lo stato attivo, può spostarlo all'interno del proprio sottoalbero.
Parametri di campionamento dell'API Prompt
Questa funzionalità aggiunge parametri di campionamento all'API Prompt. Questi parametri
controllano il campionamento dei token dal modello, il che consente agli sviluppatori di controllare
la creatività o la casualità dell'output. Inoltre, aggiunge
attributi all'istanza LanguageModel per leggere i valori impostati. Aggiunge anche
una funzione statica LanguageModel per ottenere i valori predefiniti e massimi di questi
parametri. La prima implementazione aggiunge i parametri temperature e topK.
Elemento di installazione HTML dell'app web
Questa funzionalità 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 di installare contenuti da un'origine diversa.