Chrome 148 beta

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.