Chrome 135 beta

Data di pubblicazione: 5 marzo 2025

Salvo diversa indicazione, 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 135 è in versione beta dal 5 marzo 2025. Puoi scaricare la versione più recente su Google.com per computer o sul Google Play Store su Android.

CSS e UI

Questa release aggiunge tredici nuove funzionalità CSS e UI.

Posizionamento dell'ancoraggio con offset di scorrimento memorizzato

È stato aggiunto il supporto per il concetto di offset scorrimento memorizzato. Quando un elemento posizionato ha un'ancora predefinita ed è vincolato a questa ancora su un lato e al blocco contenente originale sull'altro lato, l'offset di scorrimento verrà preso in considerazione per le dimensioni dell'elemento. Ciò significa che puoi utilizzare tutto lo spazio visibile (utilizzando position-area) per l'elemento ancorato quando il documento viene scorretto con un determinato offset di scorrimento. Per evitare di cambiare il layout (ridimensionare l'elemento) ogni volta che si scorre il documento, il browser utilizza l'offset di scorrimento memorizzato anziché l'offset di scorrimento corrente. L'offset di scorrimento memorizzato viene aggiornato in un punto di ricalcolo dell'ancora, ovvero la posizione in cui viene visualizzato inizialmente l'elemento posizionato o, quando viene scelta un'opzione di posizione diversa (position-try-fallbacks).

Inerzia CSS

L'inerzia di un elemento influisce sulla possibilità di metterlo a fuoco, modificarlo, selezionarlo e su come può essere sottoposto a ricerca tramite Trova nella pagina. Influisce anche sulla sua visibilità nell'albero dell'accessibilità. La proprietà interactivity specifica se un elemento e i relativi discendenti dell'albero piatto (inclusi i paragrafi di testo) sono inattivi o meno. La proprietà interactivity accetta uno dei due valori: auto o inert.

Proprietà di overflow logiche

Le proprietà CSS overflow-inline e overflow-block ti consentono di impostare l'overflow in direzione inline e block 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.

Le funzioni relative al segno ​abs() e sign() ​calcolano varie funzioni relative al segno del loro argomento.

La proprietà dynamic-range-limit

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

La funzione shape()

La funzione shape() consente di utilizzare forme di forma libera responsive nella proprietà clip-path. Ti consente di definire una serie di comandi, equivalenti a quelli in path(). Tuttavia, i comandi accettano unità responsive (ad es. % o vw), nonché qualsiasi valore CSS, come le proprietà personalizzate.

L'elemento pseudo ::column

Uno pseudo-elemento ::column che consente di applicare un insieme limitato di stili ai frammenti generati. Nello specifico, si tratta di 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 attivabili e comportarsi come un pulsante (inclusi gli stili UA). Quando viene attivato, deve essere eseguito uno scorrimento nella direzione di una certa quantità. Quando non è possibile scorrere in quella direzione, devono essere disattivati (e avere lo stile :disabled), altrimenti sono attivati (e hanno lo stile :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 con scorrimento. Questi pseudo-elementi ti consentono di creare un insieme di indicatori attivabili per tutti gli elementi associati all'interno del contenitore con scorrimento.

Stile degli elementi pseudo 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, mentre ::column::scroll-marker sarà supportato in futuro.

Per eliminare le fughe di dati della cronologia di navigazione degli utenti, gli elementi di ancoraggio vengono impostati come stile :visited solo se sono stati selezionati in precedenza da questo sito di primo livello e da questo frm origine. Poiché applichiamo lo stile solo ai link su cui è stato fatto clic su questo sito e su questo frame in precedenza, i numerosi attacchi lato canale 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 diretti, in cui i link alle pagine di un sito possono essere impostati come :visited anche se non sono stati ancora selezionati in questo sito di primo livello e nell'origine del frame esatti. Questa esenzione è attivata solo nei frame o nei frame secondari di primo livello che hanno la stessa origine del frame di primo livello. I vantaggi per la privacy vengono comunque raggiunti perché i siti sanno già quali delle sue 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.

Notazioni funzionali di avanzamento dell'interpolazione: funzioni *progress() CSS

Le notazioni funzionali progress(), media-progress() e container-progress() rappresentano la distanza proporzionale di un determinato valore (valore avanzamento) da un valore (valore iniziale avanzamento) a un altro valore (valore finale avanzamento). Consentono di disegnare un rapporto di avanzamento rispettivamente dalle funzioni matematiche, dalle funzionalità multimediali e dalle funzionalità dei contenitori.

Variabili safe-area-max-inset-*

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

Questi valori sono necessari per creare esperienze web edge-to-edge di alta qualità.

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 vocale 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 sorgenti audio, tra cui tracce audio remote.

Partizionamento degli URL dei blob: recupero e navigazione

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

CSP require-sri-for per gli script

La direttiva require-sri-for ti consente di affermare 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à attivato un report di violazione del CSP. Questa intenzione riguarda il valore "script" di questa direttiva.

Crea il client del service worker e eredita il controller del service worker per l'iframe srcdoc

Al momento, i documenti di contesto Srcdoc non sono client di service worker e non sono coperti dal service worker del relativo elemento principale. Ciò comporta alcune discrepanze (ad esempio, la funzionalità Ritmo risorse segnala gli URL caricati da questi documenti, ma il worker di servizio non li intercetta). Lo scopo è correggere le discrepanze creando client di service worker per gli iframe srcdoc e facendoli ereditare il controller di service worker del loro elemento principale.

Invio di eventi di clic al cursore acquisito

Se un cursore viene acquisito durante l'invio dell'evento pointerup, l'evento click verrà inviato al target acquisito anziché all'antenato comune più vicino degli eventi pointerdown e pointerup, come da specifica dell'evento UI. Per i cursori non acquisiti, il target click rimane invariato.

Float16Array

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

Incorporazione dell'iniziatore della navigazione nella chiave della partizione della cache HTTP

Il criterio di generazione delle chiavi della cache HTTP di Chrome è stato aggiornato per includere un valore booleano is-cross-site-main-frame-navigation per mitigare gli attacchi di fuga di dati tra siti che coinvolgono la navigazione di primo livello. In particolare, verranno impediti gli attacchi intersito 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 al fine di dedurre informazioni sensibili tramite i tempi di caricamento. Questa modifica migliora anche la privacy impedendo a un sito dannoso di utilizzare le navigazioni per dedurre se un utente ha visitato in precedenza un determinato sito.

Prevenzione del monitoraggio HSTS

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

Questa funzionalità consente gli upgrade HSTS solo 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 invocatore: gli attributi command e commandfor

Gli attributi command e commandfor degli elementi <button> ti consentono di assegnare il 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 selezionati, toccati o attivati con la pressione dei tasti, 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 informare i client di pagamento registrati di un pagamento push in attesa.

La proprietà NavigateEvent sourceElement

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

Modifica del nome del motivo dell'API NotRestoredReasons

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

API Web Speech on-device

Questa funzionalità aggiunge il supporto del riconoscimento vocale sul dispositivo all'API Web Speech, consentendo ai siti web di assicurarsi che né l'audio né il parlato trascritto vengano inviati a un servizio di terze parti per l'elaborazione. I siti web possono eseguire query sulla disponibilità del riconoscimento vocale sul dispositivo per lingue specifiche, chiedere agli utenti di installare le risorse necessarie per il riconoscimento vocale sul dispositivo e scegliere tra il riconoscimento vocale sul dispositivo o quello basato su cloud, in base alle esigenze.

L'URL del client di Service Worker ignora le modifiche history.pushState

Modifica la proprietà Client.url del worker di servizio per ignorare le modifiche all'URL del documento utilizzando history.pushState() e altre API di cronologia simili. La proprietà Client.url è destinata a 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 di manipolare gli elementi <a> simili 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 discussione sono:

  • Timestamp di acquisizione: il timestamp dell'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"

ProgressEvent ha gli attributi loaded e total che indicano l'avanzamento e ora il loro tipo è 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, ora gli sviluppatori 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 differito, 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à invocata dalla prima delle seguenti condizioni:

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

L'API restituisce un FetchLaterResult contenente un campo booleano activated che può essere aggiornato per indicare se la richiesta differita è stata inviata o meno. Se l'invio va a buon fine, l'intera risposta verrà ignorata dal browser, inclusi il corpo e le intestazioni.

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

Nuove prove dell'origine

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

Invoker di interesse

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" nell'elemento, vengano attivate azioni sull'elemento target. Le azioni possono includere, ad esempio, la visualizzazione di un popup. L'agente utente si occuperà di rilevare 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 l'interesse viene mostrato o perso, viene attivato un InterestEvent sul target, con azioni predefinite nel caso dei popup: la visualizzazione e la disattivazione del popup.

Integrità basata sulle firme

Questa funzionalità fornisce agli sviluppatori web un meccanismo per verificare la provenienza delle risorse di 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. Si tratta di un'aggiunta utile ai controlli basati sugli URL offerti dai criteri Content Security da un lato e ai controlli basati sui contenuti di Subresource Integrity dall'altro.

Ritiro e rimozione

Questa versione di Chrome introduce i ritiri e le rimozioni elencati di seguito. Visita ChromeStatus.com per gli elenchi delle ritirate pianificate, delle ritirate in corso e delle rimozioni precedenti.

Questa versione di Chrome ritira una funzionalità.

Ritiro dei getter di Intl Locale Info

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

Questa release di Chrome rimuove tre funzionalità.

Rimuovere il metodo navigator.xr.supportsSession deprecato

A settembre 2019, navigator.xr.supportsSession è stato sostituito nella specifica WebXR dal metodo navigator.xr.isSessionSupported dopo aver ricevuto feedback sulla forma dell'API dal TAG. Da allora è stata contrassegnata come deprecata in Chrome, generando un avviso nella 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 nuova proprietà canIntercept. A quel punto, il metodo transitionWhile() è stato rimosso. Tuttavia, abbiamo dimenticato di rimuovere la proprietà canTransition: invece, abbiamo lasciato come alias per canIntercept. In Chrome 135, risolveremo il problema e rimuoveremo canTransition. Qualsiasi utilizzo di canTransitionpuò essere sostituito con canIntercept, senza alcuna modifica del comportamento.

Rimuovi il limite WebGPU maxInterStageShaderComponents

Il limite di maxInterStageShaderComponents viene rimosso a causa di una combinazione di fattori:

  • Redundanza con maxInterStageShaderVariables: questo limite ha già un scopo simile, controllando la quantità di dati trasmessi tra le fasi dello shader.
  • Discrepanze minori: anche se esistono lievi differenze nel modo in cui vengono calcolati i due limiti, queste differenze sono minori e possono essere gestite efficacemente all'interno di maxInterStageShaderVariables limit.
  • Semplificazione: la rimozione di maxInterStageShaderComponents semplifica l'interfaccia dello shader e riduce la complessità per gli sviluppatori. Invece di gestire due limiti distinti (che si applicano entrambi contemporaneamente, ma con piccole differenze), possono concentrarsi sul valore maxInterStageShaderVariables, più appropriato e completo.