Chrome 135 beta

Data di pubblicazione: 5 marzo 2025

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ù sulle funzionalità elencate qui tramite i link forniti o dall'elenco su ChromeStatus.com. Chrome 135 è in versione beta dal 5 marzo 2025. Puoi scaricare l'ultima versione su Google.com per computer o sul Google Play Store su Android.

CSS e UI

Questa release aggiunge 13 nuove funzionalità CSS e UI.

Offset di scorrimento memorizzato per il posizionamento dell'ancoraggio

Aggiungi il supporto per il concetto di offset di scorrimento memorizzato. Quando un elemento posizionato ha un ancoraggio predefinito ed è collegato a questo ancoraggio su un bordo e contro il blocco contenitore originale sull'altro bordo, l'offset di scorrimento viene preso in considerazione per il dimensionamento dell'elemento. Ciò significa che puoi utilizzare tutto lo spazio visibile (utilizzando position-area) per l'elemento ancorato quando il documento viene scorre a un determinato offset di scorrimento. Per evitare il layout (ridimensionamento dell'elemento) ogni volta che il documento viene scorre, il browser utilizza l'offset di scorrimento memorizzato, anziché utilizzare sempre l'offset di scorrimento corrente. L'offset di scorrimento memorizzato viene aggiornato in un punto di ricalcolo dell'ancora, ovvero la posizione in cui l'elemento posizionato viene visualizzato inizialmente oppure quando viene scelta un'opzione di posizione diversa (position-try-fallbacks).

Inerzia CSS

Rendere inerte un elemento influisce sulla possibilità di metterlo a fuoco, modificarlo, selezionarlo e di cercarlo con la funzionalità Trova nella pagina. Inoltre, influisce sulla sua visibilità nell'albero dell'accessibilità. La proprietà interactivity specifica se un elemento e i relativi discendenti dell'albero piatto (inclusi i segmenti di testo) sono inerti o meno. La proprietà interactivity accetta uno dei due valori: auto o inert.

Proprietà di overflow logico

Le proprietà CSS overflow-inline e overflow-block ti consentono di impostare l'overflow nella direzione in linea e di blocco rispetto alla modalità di scrittura. In una modalità di scrittura orizzontale overflow-inline corrisponde a overflow-x, mentre in una modalità di scrittura verticale corrisponde a overflow-y.

Proprietà dynamic-range-limit

Consente a una pagina di limitare la luminosità massima dei contenuti HDR.

La funzione shape()

La funzione shape() consente forme libere reattive nella proprietà clip-path. Consente di definire una serie di comandi, equivalenti a quelli di path(). Tuttavia, i comandi accettano unità reattive (ad esempio % o vw), nonché qualsiasi valore CSS, come le proprietà personalizzate.

Lo pseudo elemento ::column

Uno pseudo-elemento ::column, che consente di applicare un insieme limitato di stili ai frammenti generati. Nello specifico, questo è limitato agli stili che non influiscono sul layout e che possono quindi essere applicati dopo il layout.

::scroll-button() pseudo-elementi

Consente la creazione di pulsanti di scorrimento interattivi come pseudo-elementi. Ad esempio:

.scroller {
  overflow: auto;
}

.scroller::scroll-button(inline-start) {
  content: "<";
}

.scroller::scroll-button(inline-end) {
  content: ">";
}

Devono essere selezionabili e comportarsi come un pulsante (inclusi gli stili UA). Una volta attivato, lo scorrimento deve essere eseguito in una direzione di un determinato importo. Quando non è possibile scorrere in quella direzione, devono essere disattivati (e formattati con :disabled), altrimenti sono attivati (e formattati con :enabled). Il selettore consente di definire i pulsanti in quattro direzioni logiche: block-start, block-end, inline-start, inline-end; nonché in quattro direzioni fisiche: up, down, left, right.

::scroll-marker e ::scroll-marker-group

Aggiunge ::scroll-marker e ::scroll-marker-group per i contenitori scorrevoli. Questi pseudo-elementi ti consentono di creare un insieme di indicatori selezionabili per tutti gli elementi associati all'interno del contenitore di scorrimento.

Stili di pseudo-elementi nidificati

Consente di applicare stili a pseudo-elementi nidificati all'interno di altri pseudo-elementi. Finora, il supporto è definito per: ::before::marker e ::after::marker con ::column::scroll-marker supportato in futuro.

Per eliminare le perdite della cronologia di navigazione degli utenti, gli elementi di ancoraggio vengono stilizzati come :visited solo se sono stati selezionati da questo sito di primo livello e dall'origine del frame in precedenza. Se vengono applicati stili solo ai link su cui è stato fatto clic su questo sito e frame in precedenza, i numerosi attacchi side-channel sviluppati per ottenere informazioni sullo stile dei link :visited sono ora obsoleti, in quanto non forniscono più ai siti nuove informazioni sugli utenti.

Esiste un'eccezione per i link automatici, in cui i link alle pagine di un sito possono essere formattati come :visited anche se non sono stati cliccati in questo esatto sito di primo livello e origine del frame in precedenza. Questa esenzione è abilitata solo nei frame di primo livello o nei subframe con la stessa origine del frame di primo livello. I vantaggi in termini di privacy vengono comunque raggiunti perché i siti sanno già quali delle loro sottopagine sono state visitate da un utente, quindi non vengono esposte nuove informazioni. Si tratta di un'eccezione richiesta dalla community che migliora l'esperienza utente.

Notazione funzionale di avanzamento dell'interpolazione: funzione CSS *progress()

Variabili safe-area-max-inset-*

Oltre alle variabili di ambiente safe-area-inset, Chrome ora supporta anche le varianti max-area-safe-inset-* di queste variabili. A differenza degli inset dinamici, gli inset massimi non cambiano e rappresentano l'inset massimo possibile dell'area sicura.

Questi valori sono necessari per creare esperienze web edge-to-edge performanti.

API web

Aggiungere il supporto di MediaStreamTrack all'API Web Speech

Aggiungi il supporto di MediaStreamTrack all'API Web Speech. L'API Web Speech è un'API standard web che consente agli sviluppatori di incorporare il riconoscimento e la sintesi vocale nelle loro pagine web. Al momento, l'API Web Speech utilizza il microfono predefinito dell'utente come input audio. Il supporto di MediaStreamTrack consente ai siti web di utilizzare l'API Web Speech per aggiungere sottotitoli codificati ad altre fonti audio, incluse le tracce audio remote.

Partizionamento dell'URL blob: recupero e navigazione

In continuità con il partizionamento dello spazio di archiviazione, questa funzionalità implementa il partizionamento dell'accesso all'URL blob in base alla chiave di archiviazione (sito di primo livello, origine frame e valore booleano has-cross-site-ancestor), ad eccezione delle navigazioni di primo livello che rimarranno partizionate solo in base all'origine frame.

CSP require-sri-for per gli script

La direttiva require-sri-for ti consente di dichiarare che ogni risorsa di un determinato tipo deve essere sottoposta a controllo di integrità. Se si tenta di caricare una risorsa di questo tipo senza metadati di integrità, il tentativo non andrà a buon fine e verrà generato un report di violazione di CSP. Questo intento copre il valore "script" di questa direttiva.

Crea un client service worker ed eredita il controller service worker per l'iframe srcdoc

I documenti di contesto Srcdoc attualmente non sono client service worker e non sono coperti dal service worker del relativo elemento padre. Ciò comporta alcune discrepanze (ad esempio, Resource Timing segnala gli URL caricati da questi documenti, ma il service worker non li intercetta). L'obiettivo è risolvere le discrepanze creando client service worker per gli iframe srcdoc e facendogli ereditare il controller service worker del parent.

Invio di eventi di clic al puntatore acquisito

Se viene acquisito un puntatore durante l'invio dell'evento pointerup, l'evento click verrà inviato alla destinazione acquisita anziché all'antenato comune più vicino degli eventi pointerdown e pointerup, come da specifica dell'evento UI. Per i puntatori non acquisiti, la destinazione click rimane invariata.

Float16Array

Aggiunge l'array digitato Float16Array. I valori numerici vengono arrotondati a IEEE fp16 durante la scrittura nelle istanze Float16Array.

Incorporare l'iniziatore della navigazione nella chiave di partizione della cache HTTP

Lo schema di generazione delle chiavi cache HTTP di Chrome è stato aggiornato per includere un valore booleano is-cross-site-main-frame-navigation per mitigare gli attacchi di perdita cross-site che coinvolgono la navigazione di primo livello. In particolare, ciò impedirà attacchi cross-site in cui un malintenzionato può avviare una navigazione di primo livello verso una determinata pagina e poi passare a una risorsa nota per essere caricata dalla pagina per dedurre informazioni sensibili tramite la tempistica di caricamento. Questa modifica migliora anche la privacy impedendo a un sito dannoso di utilizzare le navigazioni per dedurre se un utente ha visitato un determinato sito in precedenza.

Prevenzione del monitoraggio HSTS

Mitiga il monitoraggio degli utenti da parte di terze parti tramite la cache HSTS.

Questa funzionalità consente solo gli upgrade HSTS per le navigazioni di primo livello e blocca gli upgrade HSTS per le richieste di risorse secondarie. In questo modo, i siti di terze parti non possono utilizzare la cache HSTS per monitorare gli utenti sul web.

Comandi di invocazione: gli attributi command e commandfor

Gli attributi command e commandfor sugli elementi <button> consentono di assegnare un comportamento ai pulsanti in modo più accessibile e dichiarativo, riducendo al contempo i bug e semplificando la quantità di JavaScript necessaria per l'interattività. I pulsanti con gli attributi commandfor e command, quando vengono cliccati, toccati o attivati con la pressione di un tasto, inviano un CommandEvent all'elemento a cui fa riferimento commandfor, con alcuni comportamenti predefiniti, come l'apertura di finestre di dialogo e popup.

Aggiunge il supporto per <link rel="facilitated-payment" href="..."> come suggerimento che il browser deve notificare ai client di pagamento registrati un pagamento push in attesa.

Proprietà NavigateEvent sourceElement

Quando una navigazione viene avviata da un elemento (ad esempio, un clic su un link o l'invio di un modulo), la proprietà sourceElement di NavigateEvent restituisce l'elemento di avvio.

Modifica del nome del motivo dell'API NotRestoredReasons

L'API NotRestoredReasons sta modificando alcuni testi dei motivi per allinearli ai nomi standardizzati. Gli sviluppatori che monitorano questi motivi potrebbero notare una modifica nei testi dei motivi.

API Web Speech on-device

Ignora le modifiche all'URL client del service worker history.pushState

Modifica la proprietà Client.url del service worker in modo da ignorare le modifiche all'URL del documento utilizzando history.pushState() e altre API di cronologia simili. La proprietà Client.url deve essere l'URL di creazione del documento HTML che ignora queste modifiche.

Supporta gli attributi rel e relList per SVGAElement

L'interfaccia SVGAElement in SVG 2.0 consente la manipolazione degli elementi <a> in modo simile agli elementi di ancoraggio HTML. Il supporto degli attributi rel e relList migliora la sicurezza e la privacy per gli sviluppatori. Questo allineamento con gli elementi di ancoraggio HTML garantisce coerenza e facilità d'uso tra le tecnologie web.

Timestamp per i frame codificati RTC

Questa funzionalità consiste nell'esporre al web alcuni timestamp presenti nei frame codificati WebRTC trasmessi tramite RTCPeerConnection. I timestamp in questione sono:

  • Timestamp di acquisizione: il timestamp di acquisizione originale di un frame
  • Timestamp ricezione: il timestamp di ricezione di un frame

Aggiorna ProgressEvent per utilizzare il tipo double per "loaded" e "total"

L'elemento ProgressEvent ha gli attributi loaded e total che indicano l'avanzamento e il cui tipo ora è unsigned long long. Con questa funzionalità, il tipo di questi due attributi viene modificato in double, il che offre allo sviluppatore un maggiore controllo sul valore. Ad esempio, gli sviluppatori ora possono creare un ProgressEvent con total pari a 1 e loaded che aumenta gradualmente da 0 a 1. Questo è in linea con il comportamento predefinito dell'elemento HTML <progress> se l'attributo max viene omesso.

L'API fetchLater

L'API fetchLater() è un'API JavaScript per richiedere un recupero posticipato, particolarmente utile per un beaconing più affidabile alla fine del ciclo di vita di una pagina. Una volta chiamata in un documento, una richiesta differita viene messa in coda dal browser nello stato PENDING e verrà richiamata dalla prima delle seguenti condizioni:

Il documento è stato distrutto. Dopo un periodo di tempo specificato dall'utente. Per motivi di privacy, tutte le richieste in attesa verranno eliminate quando il documento entra nella bfcache, indipendentemente dal tempo rimanente. Il browser decide che è il momento di inviarlo.

L'API restituisce un FetchLaterResult che contiene un campo booleano activated che può essere aggiornato per indicare se la richiesta differita è stata inviata o meno. In caso di invio riuscito, l'intera risposta verrà ignorata dal browser, inclusi corpo e intestazioni.

Tieni presente che dal punto di vista dell'utente API, l'ora esatta di invio è sconosciuta.

Nuove prove dell'origine

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

Invoker di intent

Questa funzionalità aggiunge un attributo interesttarget agli elementi <button> e <a>. L'attributo interesttarget aggiunge comportamenti di "interesse" all'elemento, in modo che quando l'utente "mostra interesse" per l'elemento, le azioni vengano attivate sull'elemento di destinazione. Le azioni possono includere la visualizzazione di un popup. L'user agent gestirà il rilevamento di quando l'utente "mostra interesse" per l'elemento, utilizzando metodi come il passaggio del mouse sopra l'elemento, la pressione di tasti di scelta rapida speciali sulla tastiera o la pressione prolungata dell'elemento sui touchscreen. Quando viene mostrato o perso l'interesse, viene attivato un InterestEvent sul target, che hanno azioni predefinite nel caso dei popup, ovvero mostrare e nascondere il popup.

Integrità basata sulle firme

Questa funzionalità fornisce agli sviluppatori web un meccanismo per verificare la provenienza delle risorse da cui dipendono, creando una base tecnica per la fiducia nelle dipendenze di un sito. In breve: i server possono firmare le risposte con una coppia di chiavi Ed25519 e gli sviluppatori web possono richiedere allo user agent di verificare la firma utilizzando una chiave pubblica specifica. Questa funzionalità offre un'utile aggiunta ai controlli basati su URL offerti da Content Security Policy da un lato e ai controlli basati sui contenuti di Subresource Integrity dall'altro.

Ritiri e rimozioni

Questa versione di Chrome introduce i ritiri e le rimozioni elencati di seguito. Visita ChromeStatus.com per visualizzare gli elenchi di ritiri pianificati, ritiri attuali e rimozioni precedenti.

Questa release di Chrome ritira una funzionalità.

Ritiro dei getter di Intl Locale Info

L'API Intl Locale Info è una proposta ECMAScript TC39 di fase 3 per migliorare l'oggetto Intl.Locale esponendo informazioni sulle impostazioni internazionali, come i dati della settimana (primo giorno della settimana, inizio del fine settimana, fine del fine settimana, giorno minimo nella prima settimana) e il ciclo orario della direzione del testo utilizzato nelle impostazioni internazionali. Chrome ha implementato l'implementazione in Chrome 99, ma la proposta è cambiata per spostare diversi getter in funzioni. Dobbiamo rimuovere i getter deprecati e rilanciare le funzioni rinominate.

Questa release di Chrome rimuove tre funzionalità.

Rimuovi il metodo navigator.xr.supportsSession ritirato

navigator.xr.supportsSession è stato sostituito nella specifica WebXR dal metodo navigator.xr.isSessionSupported a settembre 2019 dopo aver ricevuto feedback sulla forma dell'API dal TAG. Da allora è stato contrassegnato come deprecato in Chrome, generando un avviso della console che reindirizza gli sviluppatori all'API aggiornata. L'utilizzo della chiamata è molto basso e tutti i principali framework utilizzati per creare contenuti WebXR sono stati aggiornati per utilizzare la chiamata più recente.

Rimuovi la proprietà NavigateEvent canTransition

In Chrome 108, il metodo transitionWhile() e la proprietà canTransition di NavigateEvent sono stati sostituiti dal nuovo metodo intercept() e dalla proprietà canIntercept. A quel punto, il metodo transitionWhile() è stato rimosso. Tuttavia, abbiamo dimenticato di rimuovere la proprietà canTransition: l'abbiamo lasciata come alias per canIntercept. In Chrome 135, stiamo risolvendo il problema e rimuovendo canTransition. Qualsiasi utilizzo di canTransition può essere sostituito con canIntercept, senza modifiche al comportamento.

Rimuovi il limite WebGPU maxInterStageShaderComponents

Il limite di maxInterStageShaderComponents verrà rimosso a causa di una combinazione di fattori:

  • Ridondanza con maxInterStageShaderVariables: questo limite ha già uno scopo simile, in quanto controlla la quantità di dati trasferiti tra le fasi dello shader.
  • Discrepanze minori: sebbene vi siano lievi differenze nel modo in cui vengono calcolati i due limiti, queste differenze sono minime e possono essere gestite in modo efficace all'interno di maxInterStageShaderVariables limit.
  • Semplificazione: la rimozione di maxInterStageShaderComponents semplifica l'interfaccia dello shader e riduce la complessità per gli sviluppatori. Anziché gestire due limiti separati (che si applicano contemporaneamente ma con sottili differenze), possono concentrarsi sul più appropriato e completo maxInterStageShaderVariables.