Chrome 149 beta

Data di pubblicazione: 6 maggio 2026

Se non diversamente specificato, le seguenti modifiche si applicano alla release più recente del canale beta di Chrome per Android, ChromeOS, Linux, macOS e Windows. Scopri di più sulle funzionalità elencate qui tramite i link forniti o dall'elenco su ChromeStatus.com. Chrome è in versione beta dal 6 maggio 2026. Puoi scaricare l'ultima versione su Google.com per computer o sul Google Play Store su Android.

CSS e UI

Rimuovere la regola del foglio di stile UA del colore del bordo esplicito per le tabelle

Questa modifica rimuove la regola CSS errata border-color: gray dal foglio di stile UA per l'elemento <table>.

La specifica HTML non contiene questa regola e fa sì che i bordi non vengano impostati correttamente su currentColor per impostazione predefinita. Né Firefox né Webkit hanno questa regola del colore del bordo gray nel loro foglio di stile UA, il che comporta problemi di interoperabilità.

Supportare path() e shape() in shape-outside

Aggiunge il supporto per le funzioni di forma path() e shape() nella proprietà CSS shape-outside. Queste funzioni consentono agli sviluppatori di definire forme di esclusione del float utilizzando le coordinate del rettangolo.

Supportare rect() e xywh() in shape-outside

Aggiunge il supporto per le funzioni di forma di base rect() e xywh() nella proprietà CSS shape-outside. Queste funzioni consentono agli sviluppatori di definire forme di esclusione del float utilizzando le coordinate del rettangolo, allineando Chrome a Firefox e Safari, che già supportano questa funzionalità.

Colore intenso del sistema dell'ambito dell'app web

Limita l'accesso al colore intenso del sistema per le parole chiave CSS e accent-color: auto solo all'interno di un'app web e del contesto del profilo iniziale.

Le parole chiave CSS AccentColor e AccentColorText rappresentano un vettore di fingerprinting significativo quando espongono ampiamente i colori di sistema dell'utente sul web. Di conseguenza, sono disponibili solo nei contesti delle app web installate. Anche i controlli dei moduli con accent-color: auto corrispondono a questo ambito con il lancio di questa funzionalità. In questo modo, le aspettative di sviluppatori e utenti per i colori di sistema sono più coerenti e si allineano alle restrizioni di fingerprinting per AccentColor[Text].

Ritagliare il testo in caso di overflow durante l'interazione dell'utente

Quando un utente interagisce (modifica o navigazione con il cursore del testo) con il testo in cui è impostato text-overflow: ellipsis, il testo passa temporaneamente da puntini di sospensione a ritaglio, consentendo all'utente di visualizzare e interagire con i contenuti di overflow nascosti. Questa funzionalità si applica a tutti gli elementi modificabili e non modificabili. Per i controlli dei moduli (textarea, input), il comportamento è già supportato.

Decorazioni degli spazi CSS

Le decorazioni degli spazi CSS ti consentono di applicare uno stile agli spazi nei layout dei contenitori, come griglia e flexbox, in modo simile a column-rule nel layout a più colonne. Questa funzionalità è molto richiesta dagli sviluppatori web che oggi devono utilizzare hack per applicare uno stile agli spazi nei layout di griglia e flexbox.

image-rendering: crisp-edges

image-rendering: crisp-edges indica che l'immagine deve essere scalata in modo da preservare il contrasto e i bordi ed evitare di sfumare i colori o introdurre sfocature nell'immagine durante il processo.

Limite del livello superiore della pseudo-classe dell'azione dell'utente

Questa funzionalità rappresenta il comportamento descritto nella specifica CSS Selectors Level 4, che afferma che :hover, :active e :focus-within corrispondono ai genitori degli elementi, ma solo fino al primo elemento del livello superiore nella catena principale. La modifica per Chromium implementa questa restrizione per gli elementi del livello superiore.

In concreto, nella seguente struttura, se l'utente passa il mouse sopra il <button>, la pseudo-classe :hover corrisponderà al <button> e al popover, ma non corrisponderà all'elemento <main>.

<main>
  <div popover>
    <button></button>
  </div>
</main>
<script>document.querySelector('[popover]').showPopover();</script>

La logica alla base di questa modifica è che in genere gli elementi del livello superiore vengono visualizzati "altrove", in una posizione visivamente scollegata dall'elemento principale. Pertanto, in genere non ha senso modificare gli stili dell'elemento principale quando, ad esempio, l'elemento del livello superiore è attivo o viene attivato.

L'implementazione della selezione personalizzabile fornita in Chromium ha questa logica hardcoded per il caso specifico del popover ::picker() della selezione. Questa logica di caso speciale viene rimossa a favore del comportamento più generale con questa funzionalità.

Supportare path-length come proprietà CSS

Questa modifica introduce una nuova proprietà CSS, path-length, che esegue il mapping all'attributo di presentazione SVG pathLength esistente. Si applica agli elementi di geometria SVG che supportano pathLength (inclusi <path>, <circle>, <rect>, <line>, <polyline>, <polygon> e <ellipse>).

L'esposizione di pathLength come proprietà CSS consente agli autori di specificarla in fogli di stile, stili in linea e animazioni, consentendole di partecipare alla normale cascata CSS, alla specificità, alle transizioni e alle animazioni. La proprietà influisce su tutti i calcoli che dipendono dalla lunghezza totale del percorso, inclusa la visualizzazione dei trattini del tratto e il posizionamento del testo lungo un <textPath>.

Le dichiarazioni CSS sostituiscono l'attributo di presentazione seguendo le regole di precedenza CSS standard. Il valore iniziale di path-length è none, che rappresenta l'assenza di una lunghezza del percorso fornita dall'autore ed è distinto da un valore numerico esplicito come 0.

Il comportamento esistente solo per gli attributi viene mantenuto quando la funzionalità è disattivata.

API web

Intl.Locale.prototype.variants

Aggiungi Intl.Locale.prototype.variants come indicato in proposta TC39 e accetta anche "variants" nel pacchetto di opzioni nel costruttore Intl.Locale come in aggiornamento dell'ID lingua TC39. Le modifiche a ECMA402 vengono unite in richiesta di pull 960 e il codice di test in test262 viene unito nella richiesta di pull 4474

Promesse di scorrimento programmatico

Al momento, gli sviluppatori web non hanno modo di sapere quando è stato completato uno scorrimento graduale programmatico. Questa funzionalità fornisce una soluzione al problema: fa in modo che i metodi di scorrimento programmatico restituiscano oggetti Promise che vengono risolti al completamento dello scorrimento con lo stato di interruzione.

Richiesta di pagamento: consentire ai gestori dei pagamenti di segnalare errori interni

Consente ai gestori dei pagamenti a cui si accede con l'API Payment Request di restituire errori distinti per "utente ha annullato" e "errore interno dell'app di pagamento". In questo modo, gli sviluppatori web possono creare flussi migliori per gli utenti, ad esempio riprovando o tornando a un flusso diverso quando si verifica un errore interno dell'app, interrompendo correttamente il flusso se l'utente vuole annullare.

L'API Payment Handler basata sul web può indicare questa differenza in base all'errore utilizzato per rifiutare la promessa passata a PaymentRequestEvent.respondWith. Se la promessa viene rifiutata con un OperationError, al commerciante viene restituito "errore interno dell'app" (OperationError) utilizzando il metodo PaymentRequest.show(), altrimenti viene restituito "annullamento utente" (AbortError).

Anche l'infrastruttura del gestore dei pagamenti delle app native viene aggiornata in modo simile, ma non rientra nell'ambito delle API web.

Rispettare autocorrect="off" per la tastiera touch di Windows in TSF

L'attributo HTML autocorrect consente agli autori web di controllare se la correzione automatica deve essere applicata all'input dell'utente negli elementi modificabili, inclusi <input>, <textarea>, e gli host contenteditable. Su Windows, la tastiera touch ignora questo attributo e corregge sempre automaticamente le parole. Ad esempio, digitando "truf" seguito da uno spazio in un elemento con autocorrect="off" viene visualizzato "true " anziché mantenere "truf ". Questa funzionalità fa sì che l'integrazione TSF di Chrome rilevi e annulli le correzioni automatiche della tastiera touch quando l'elemento modificabile attivo ha impostato autocorrect="off".

Disconnettere i WebSocket all'ingresso di bfcache

Le connessioni WebSocket attive non impediscono più a una pagina di entrare nella cache back-forward (bfcache). Chiudendo le connessioni all'ingresso di bfcache anziché contrassegnare il documento come non idoneo, il browser consente di archiviare e ripristinare le pagine con WebSocket attivi.

Attributo Request.isReloadNavigation

Aggiunge l'attributo booleano di sola lettura isReloadNavigation all'interfaccia Request dell'API Fetch. Questo attributo indica se la richiesta di navigazione corrente è stata avviata come ricaricamento attivato dall'utente (ad esempio, utilizzando il pulsante di aggiornamento, location.reload() o history.go(0)). Questo segnale viene esposto principalmente nell'oggetto Request all'interno di FetchEvent di un service worker.

Disattivare i filtri SVG su plug-in e iframe multiorigine e con limitazioni

Questo lancio impedisce l'applicazione dei filtri SVG a iframe multiorigine o con limitazioni (ad esempio, iframe con sandbox) e plug-in incorporati (ad esempio, PDF). Quando un frame o un plug-in viene disegnato con un effetto di filtro SVG, l'albero degli effetti viene attraversato per trovare l'antenato più alto senza filtri SVG e viene applicato l'effetto.

Nuove prove dell'origine

In Chrome 149 puoi attivare le seguenti nuove prove dell'origine.

Policy delle autorizzazioni: focus-without-user-activation

Consente agli incorporatori di controllare lo stato attivo programmatico dei contenuti incorporati con la policy delle autorizzazioni focus-without-user-activation. Quando la policy viene negata per un frame, le chiamate di stato attivo programmatico (element.focus(), autofocus, window.focus(), dialog.showModal() e lo stato attivo del popover) vengono bloccate a meno che non vengano attivate dall'utente. Lo stato attivo avviato dall'utente, ad esempio facendo clic o premendo il tasto Tab, non viene mai interessato.

La policy può essere impostata utilizzando un'intestazione della risposta HTTP Permissions-Policy o l'attributo allow dell'iframe. È supportata la delega dello stato attivo: un frame principale con lo stato attivo può passare programmaticamente lo stato attivo a un iframe secondario, anche se al secondario è stata negata la policy, e una volta che un frame ha lo stato attivo, può spostarlo all'interno del proprio sottoalbero.

API di input basata su eventi Gamepad

Questa proposta estende l'API Gamepad con un nuovo modello basato su eventi che consente alle applicazioni di ricevere l'input del gamepad con una latenza inferiore. Anziché fare affidamento su un polling frequente utilizzando navigator.getGamepads(), gli sviluppatori possono ora ascoltare un evento rawgamepadinputchange, che viene attivato ogni volta che sono disponibili nuovi dati di input dal dispositivo. Ciò consente una gestione dell'input più reattiva, in particolare nelle applicazioni sensibili alla latenza.

Descrittori personalizzati WebAssembly

Consente a WebAssembly di archiviare i dati associati ai tipi a livello di origine in modo più efficiente nei nuovi oggetti descrittori personalizzati. Questi descrittori personalizzati possono essere configurati con prototipi per gli oggetti WebAssembly di quel tipo a livello di origine. In questo modo, i metodi possono essere installati nella catena di prototipi di un oggetto WebAssembly e chiamati direttamente da JavaScript utilizzando la normale sintassi di chiamata al metodo. I prototipi e i metodi possono essere configurati in modo dichiarativo utilizzando una funzione integrata importata.