Chrome 148 beta

Data di pubblicazione: 8 aprile 2026

Se non diversamente specificato, 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 container solo per nome in CSS

Ora puoi eseguire query su un container CSS basandoti solo sul 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>

Ritaglia l'overflow del testo in base all'interazione dell'utente

Quando un utente interagisce (ad esempio modificando o utilizzando la navigazione con cursore del testo) con il testo con text-overflow: ellipsis impostato, il testo passa temporaneamente dai puntini di sospensione al ritaglio. In questo modo, l'utente può visualizzare e interagire con i contenuti nascosti in eccesso. 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 sul effectAllowed corrente. dragLeave deve sempre avere un dropEffect none. Al momento, Chrome non rispetta queste regole. A partire da Chrome 148, Chrome rispetterà la specifica e assegnerà i valori corretti a questo attributo.

Caricamento lento degli 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 alla finestra di visualizzazione utilizzando loading="lazy". Questo corrisponde al comportamento di caricamento lento esistente per gli elementi <img> e <iframe>, che migliora le prestazioni di caricamento della pagina e riduce l'utilizzo dei dati.

Funzione CSS at-rule() per il rilevamento delle funzionalità

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

Aggiungi la parola chiave revert-rule

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

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

Questo è particolarmente utile con i condizionali, 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 del 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 incondizionatamente l'interruzione dell'inchiostro a tutti i glifi, inclusi i caratteri CJK. Al contrario, auto lascia i caratteri CJK non saltati perché il salto dell'inchiostro tende a produrre risultati visivi indesiderati per gli script 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 l'interruzione dell'inchiostro per questi caratteri.

API web

Localize manifest members

Questa funzionalità supporta la localizzazione dei membri del manifest, consentendo alle app di adattare i propri nomi, descrizioni, icone e scorciatoie alla lingua e alla regione dell'utente. Gli sviluppatori forniscono valori localizzati nel file manifest dell'app web. Il browser seleziona automaticamente le risorse appropriate in base alle impostazioni della lingua dell'utente, il che introduce il supporto delle lingue in diversi mercati.

Supporto di Open Font Format avar2 per la formattazione del testo e il rendering dei glifi

La versione 2 della tabella avar (Axis Variations) consente ai designer di caratteri di creare caratteri variabili con un maggiore controllo sull'interpolazione. Mentre la specifica originale del carattere variabile gestisce gli assi in modo indipendente, avar2 consente agli assi di influenzarsi a vicenda. In questo modo, i caratteri sono più facili da utilizzare per gli autori dei contenuti e lo spazio di archiviazione è più compatto.

Avar2 funziona utilizzando gli stessi concetti familiari delle variazioni dei caratteri, ma ti consente di applicare valori delta variabili agli assi di progettazione stessi. Puoi farlo su un intervallo di più assi.

Ad esempio, puoi creare meta cursori che controllano più assi di variazione contemporaneamente. In questo modo, l'utente non deve ottimizzare e trovare un angolo utile dello spazio di progettazione del carattere.

Avar2 offre ai designer di caratteri un maggiore controllo sullo spazio di variazione utilizzabile del loro 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 meno master. In questo modo, le dimensioni dei file sono più piccole perché l'interpolazione viene archiviata in modo più efficiente.

Modalità UI immediata di autenticazione web

Questa nuova modalità per navigator.credentials.get() fa sì che la UI di accesso del browser venga visualizzata dall'utente se il browser conosce immediatamente una passkey o una password per il sito. In caso contrario, rifiuta la promise con NotAllowedError se non è disponibile una credenziale di questo tipo. In questo modo, il sito evita di mostrare una pagina di accesso se il browser può offrire una scelta di credenziali di accesso che probabilmente avranno esito positivo. Consente comunque un flusso della pagina 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 hobby e dell'industria, collegano ai propri computer dispositivi periferici che richiedono un software personalizzato per il controllo. Ad esempio, la robotica viene spesso utilizzata per insegnare la programmazione informatica e l'elettronica nelle scuole. Ciò richiede un software in grado di caricare il codice su un robot o di controllarlo da remoto. In un contesto industriale o hobbistico, un'apparecchiatura, come una fresatrice, un taglierino laser o una stampante 3D, è controllata da un programma in esecuzione su un computer connesso. Questi dispositivi sono spesso controllati da piccoli microcontroller 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 sono implementati per tutti i backend (come polyfill dei valori integrati esistenti).

Supporto di SharedWorker su Android

Per molto tempo, SharedWorker è stato disattivato su Android a causa di dubbi sul ciclo di vita imprevedibile del processo. Gli sviluppatori di Chrome ritenevano che le istanze 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 dei processi di SharedWorker potrebbe non essere un problema così significativo come si pensava in precedenza. Sulla base di ciò, Chrome sta riattivando SharedWorker su Android e contemporaneamente sta esaminando questo comportamento per garantire un'esperienza stabile e affidabile.

Durata estesa per i worker condivisi

Questo aggiornamento aggiunge una nuova opzione, extendedLifetime: true, al costruttore SharedWorker. In questo modo, il worker condiviso rimane attivo anche dopo che tutti i client attuali sono stati scaricati. Il caso d'uso principale è consentire alle pagine di eseguire attività asincrone che richiedono JavaScript dopo che una pagina è stata scaricata, senza dover fare affidamento su un service worker.

API Prompt

L'API Prompt offre agli sviluppatori web l'accesso diretto a un modello linguistico di AI on-device fornito dal browser. Il design dell'API offre un controllo granulare, in linea con la struttura delle API cloud. In questo modo, puoi implementare il potenziamento progressivo dei siti tramite interazioni del modello ottimizzate per singoli casi d'uso. Questa soluzione va a integrare le API dei modelli linguistici basate su attività specifiche (ad esempio l'API Summarizer) e varie API e framework per l'inferenza generalizzata on-device con modelli ML forniti dagli sviluppatori. L'implementazione iniziale supporta input di testo, immagini e audio, nonché vincoli di risposta che assicurano che il testo generato sia conforme ai formati di espressione regolare e schema JSON predefiniti.

In questo modo, è possibile supportare una varietà 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 insight da contenuti originali multimodali.

Questa API è già stata rilasciata nelle estensioni di Chrome. Questo intent monitora la spedizione sul web. È disponibile una policy aziendale, GenAILocalFoundationalModelSettings, per disattivare il download del modello sottostante, operazione che rende questa API inutilizzabile. Gli amministratori aziendali possono anche impostare la policy BuiltInAIAPIsEnabled per bloccare l'utilizzo dell'API AI integrata, pur continuando a consentire 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')

Ottieni le funzionalità di Secure Payment Confirmation

Questa funzionalità aggiunge un nuovo metodo statico all'API Payment Request che consente agli sviluppatori web di ottenere le funzionalità dell'implementazione del browser della conferma di pagamento sicuro. In questo modo, gli sviluppatori web sanno quali funzionalità sono disponibili per la conferma di pagamento sicuro. In seguito, possono decidere se utilizzare la conferma di pagamento sicuro con queste funzionalità.

Regole ContextJ IDNA

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. In questo modo, ZWNJ (U+200C ZERO WIDTH NON-JOINER) e ZWJ (U+200D ZERO WIDTH JOINER) non sono consentiti nella maggior parte dei punti degli URL. L'implementazione passa l'opzione UIDNA_CHECK_CONTEXTJ a ICU, dove viene implementata questa regola.

Riutilizza le immagini no-store alla riassegnazione di same-src

Questa funzionalità consente al riutilizzo delle immagini disponibili nello stesso documento di bypassare il ricaricamento di Cache-Control: no-store quando lo stesso valore src viene riassegnato a un elemento <img>. In precedenza, Blink recuperava nuovamente l'immagine anche se era già stata decodificata e disponibile nel documento. Ciò è in linea con il comportamento esistente di Gecko e WebKit.

Aggiungi il campo contentType a Resource Timing

Questa funzionalità aggiunge il campo contentType a PerformanceResourceTiming per contenere una stringa corrispondente al tipo di contenuti della risorsa recuperata, come restituito dal server.

Elimina gli eventi del puntatore all'inizio del trascinamento

In base alla specifica HTML, quando inizia un trascinamento, lo user agent deve inviare gli eventi appropriati all'origine del trascinamento per indicare che lo stream 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 tramite tocco su Android. Con questa funzionalità, Chrome mira a soddisfare pienamente questo requisito di specifica su tutte le altre piattaforme. In pratica, questo significa che, dopo l'inizio di un trascinamento, l'origine del trascinamento riceverà gli eventi pointercancel, pointerout e pointerleave per indicare che lo stream di eventi corrente è terminato.

Canale dati WebRTC: negozia sempre i canali dati

Questa funzionalità implementa un'estensione WebRTC, alwaysNegotiateDataChannels, che definisce un modo per un'applicazione di negoziare i canali dati in un'offerta SDP prima di creare un canale dati. In questo modo, viene negoziata anche la sezione dati m= prima di qualsiasi sezione audio o video m e viene utilizzata come "sezione m= con tag dell'offerer" per [BUNDLE].

Ciò significa che se crei un RTCPeerConnection con alwaysNegotiateDataChannels: true e poi chiami createOffer(), viene creata un'offerta con una m-line dell'applicazione nell'SDP. Ad esempio:

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

Se aggiungi anche un transceiver audio e un canale dati, l'offerta negozia una linea m dell'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();

Nuovi origin trial

In Chrome 148, puoi attivare i seguenti nuovi origin trial.

Accesso federato agentico

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 della risposta HTTP. Prima che lo user agent stabilisca una connessione per conto di una pagina, lo user agent valuta la destinazione in base a questa lista consentita. Le connessioni agli endpoint verificati sono consentite, mentre quelle che non corrispondono alle voci nell'elenco vengono bloccate.

Tempistiche del contenitore

L'API Container Timing ti consente di monitorare quando le sezioni annotate del DOM vengono visualizzate sullo schermo e hanno completato il loro rendering iniziale. Puoi contrassegnare le sottosezioni del DOM con l'attributo containertiming (simile a elementtiming per l'API Element Timing) e ricevere voci relative alle prestazioni quando la sezione viene 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 shadow root, incluse le shadow root dichiarative. Gli sviluppatori possono definire moduli di stile incorporati con <style type="module" specifier="foo"> e applicare un modulo dichiarativo a un DOM shadow dichiarativo facendo riferimento a specifier o a un URL, ad esempio <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.

HTML-in-canvas

HTML-in-canvas è una nuova API che ti consente di personalizzare il rendering degli elementi DOM direttamente in un canvas o in una texture 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 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 del 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 l'interfaccia utente, ad esempio suggerimenti incorporati, evidenziazioni e popover 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. Questo costrutto 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 istruzioni per l'analizzatore HTML su come eseguire il buffering e lo streaming.

Policy sulle autorizzazioni: focus-without-user-activation

Questa policy consente agli incorporatori di controllare lo stato attivo programmatico dai contenuti incorporati tramite la policy sulle autorizzazioni focus-without-user-activation. Quando la policy viene negata per un frame, le chiamate di attivazione programmatica (element.focus(), autofocus, window.focus(), dialog.showModal() e attivazione dei popup) vengono bloccate, a meno che non vengano attivate dall'utente. Lo stato attivo avviato dall'utente, ad esempio tramite clic o tabulazione, non viene mai interessato. Puoi impostare la policy tramite un'intestazione della risposta HTTP Permissions-Policy o l'attributo iframe allow. La delega dello stato attivo è supportata. Un frame principale con lo stato attivo può passare lo stato attivo in modo programmatico a un iframe secondario, anche se il criterio è stato negato per l'iframe secondario. 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 modo in cui i token vengono campionati 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. Aggiunge anche una funzione LanguageModel statica per ottenere i valori predefiniti e massimi di questi parametri. La prima implementazione aggiunge i parametri temperature e topK.

Elemento HTML <install> dell'app web

Questa funzionalità consente a un sito web di invitare gli utenti a installare un'app web in modo dichiarativo. L'elemento accetta facoltativamente due attributi, che ti consentono di installare contenuti provenienti da un'origine diversa.