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.
Funzioni correlate al segno: abs() e sign()
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.
Cronologia dei link di partizionamento :visited
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.
Link rel="facilitated-payment" per supportare i pagamenti push
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
maxInterStageShaderComponentssemplifica 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 completomaxInterStageShaderVariables.