Data di rilascio stabile: 4 febbraio 2025
Salvo diversa indicazione, le seguenti modifiche si applicano alla release del canale stabile di Chrome 133 per Android, ChromeOS, Linux, macOS e Windows.
HTML e DOM
Il valore del suggerimento dell'attributo popover
L'API Popover specifica il comportamento per due valori dell'attributo popover: automatico e manuale. Questa funzionalità descrive un terzo valore, popover=hint
. I suggerimenti, che sono spesso associati a comportamenti di tipo "tooltip", hanno comportamenti leggermente diversi. La differenza principale è che un suggerimento è subordinato a auto quando si aprono serie nidificate di popup. Pertanto, è possibile aprire un popover di suggerimento non correlato mentre uno stack esistente di popover automatici rimane aperto.
L'esempio canonico è un selettore <select>
aperto (popover=auto
) e una descrizione comando attivata dal passaggio del mouse (popover=hint
). Questa azione non chiude il selettore <select>
.
Bug di monitoraggio 1416284 | Voce di ChromeStatus.com
Miglioramenti al posizionamento dell'attivatore e dell'ancora del popup
Aggiunge un modo imperativo per impostare le relazioni di invocatore tra i popup con popover.showPopover({source})
. Consente alle relazioni di invocatore di creare riferimenti impliciti agli elementi di ancoraggio.
Bug di monitoraggio n. 364669918 | Voce di ChromeStatus.com
Il popup nidificato all'interno dell'invoker non deve richiamarlo di nuovo
Nel seguente caso, il clic sul pulsante attiva correttamente il popup, ma il clic sul popup stesso dopo non dovrebbe chiuderlo.
<button popovertarget=foo>Activate
<div popover id=foo>Clicking me shouldn't close me</div>
</button>
In precedenza, ciò accadeva perché il clic del popup si espandeva fino al <button>
e attivava l'attivatore, che chiudeva e riapriva il popup. Ora è stato ripristinato il comportamento previsto.
Bug di monitoraggio #https://crbug.com/379241451 | Voce di ChromeStatus.com
CSS
Funzione attr()
avanzata CSS
Implementa l'aumento a attr()
specificato nel livello 5 del CSS, che consente tipi diversi da <string>
e l'utilizzo in tutte le proprietà CSS (oltre al supporto esistente per i contenuti degli pseudo-elementi).
MDN attr() | Bug di monitoraggio #246571 | Voce di ChromeStatus.com | Specifiche
Pseudo classe CSS :open
La pseudo-classe :open
corrisponde a <dialog>
e <details>
quando sono aperti e a <select>
e <input>
quando sono in modalità con un selettore e il selettore è visualizzato.
Bug di monitoraggio #324293874 | Voce di ChromeStatus.com | Specifiche
Query del contenitore dello stato di scorrimento CSS
Utilizza le query dei contenitori per definire lo stile dei discendenti dei contenitori in base al loro stato di scorrimento.
Il contenitore della query è un contenitore con scorrimento o un elemento interessato dalla posizione di scorrimento di un contenitore con scorrimento. È possibile eseguire query sui seguenti stati:
stuck
: un contenitore con posizione fissa è attaccato a uno dei bordi della casella di scorrimento.snapped
: un contenitore allineato con lo snap di scorrimento è attualmente agganciato orizzontalmente o verticalmente.scrollable
: indica se è possibile scorrere un contenitore con scorrimento nella direzione specificata nella query.
Un nuovo tipo di contenitore: scroll-state
consente di eseguire query sui contenitori.
Bug di monitoraggio 40268059 | Voce di ChromeStatus.com | Specifiche
CSS text-box
, text-box-trim
e text-box-edge
Per ottenere un equilibrio ottimale dei contenuti di testo, le proprietà text-box-trim
e text-box-edge, insieme alla proprietà abbreviata text-box, consentono un controllo più preciso dell'allineamento verticale del testo.
La proprietà text-box-trim
specifica i lati da tagliare, sopra o sotto, mentre la proprietà text-box-edge
specifica come deve essere tagliato il bordo.
Queste proprietà ti consentono di controllare con precisione la spaziatura verticale utilizzando le metriche dei caratteri.
Bug di monitoraggio #1411581 | Voce di ChromeStatus.com | Specifiche
API web
Animation.overallProgress
Fornisce agli sviluppatori una rappresentazione pratica e coerente dell'avanzamento di un'animazione nelle sue iterazioni e indipendentemente dalla natura della sequenza temporale. Senza la proprietà overallProgress
, devi calcolare manualmente il livello di avanzamento di un'animazione, tenendo conto del numero di iterazioni dell'animazione e se currentTime
dell'animazione è una percentuale del tempo totale (come nel caso delle animazioni basate sullo scorrimento) o una quantità di tempo assoluta (come nel caso delle animazioni basate sul tempo).
Bug di monitoraggio #40914396 | Voce di ChromeStatus.com | Specifiche
Il metodo pause()
dell'oggetto Atomics
Aggiunge il metodo pause()
all'oggetto dello spazio dei nomi Atomics
per suggerire alla CPU che il codice corrente sta eseguendo uno spinlock.
Voce di ChromeStatus.com | Specifiche
Report sugli hash CSP per gli script
Per motivi di sicurezza, le applicazioni web complesse devono spesso tenere traccia delle risorse secondarie che scaricano.
In particolare, le best practice e gli standard di settore imminenti (ad esempio PCI-DSS v4) richiedono che le applicazioni web mantengano un inventario di tutti gli script che scaricano ed eseguono.
Questa funzionalità si basa su CSP e sull'API Reporting per segnalare gli URL e gli hash (per CORS/stessa origine) di tutte le risorse dello script caricate dal documento.
Bug di monitoraggio 377830102 | Voce di ChromeStatus.com
Spostamento che preserva lo stato del DOM
Aggiunge un elemento DOM primitivo (Node.prototype.moveBefore
) che consente di spostare gli elementi all'interno di una struttura ad albero DOM, senza reimpostare lo stato dell'elemento.
Quando sposti un elemento anziché rimuoverlo e inserirlo, viene mantenuto lo stato seguente:
<iframe>
elementi rimangono caricati.- L'elemento attivo rimane attivo.
- I popup, le finestre a schermo intero e le finestre di dialogo modali rimangono aperte.
- Le transizioni e le animazioni CSS continuano.
Esponi l'attributo attributionsrc
in <area>
.
Allinea l'esposizione dell'attributo attributionsrc
in <area>
al comportamento di elaborazione esistente dell'attributo, anche se non era esposto.
Inoltre, ha senso supportare l'attributo in <area>
, poiché questo elemento è una piattaforma di navigazione di primo livello e Chrome lo supporta già nelle altre piattaforme di <a>
e window.open
.
Bug di monitoraggio n. 379275911 | Voce di ChromeStatus.com | Specifiche
Interfaccia FileSystemObserver
L'interfaccia FileSystemObserver
notifica ai siti web le modifiche al file system. I siti osservano le modifiche apportate a file e directory a cui l'utente ha precedentemente concesso l'autorizzazione, nel dispositivo locale dell'utente o nel file system del bucket (noto anche come file system privato di origine) e ricevono una notifica con informazioni di base sulle modifiche, ad esempio il tipo di modifica.
Bug di monitoraggio 40105284 | Voce di ChromeStatus.com
Più mappe di importazione
Al momento, le mappe di importazione devono essere caricate prima di qualsiasi modulo ES e può esistere una sola mappa di importazione per documento. Ciò li rende fragili e potenzialmente lenti da usare in scenari reali: qualsiasi modulo caricato prima interrompe l'intera app e, nelle app con molti moduli, diventano una grande risorsa di blocco, poiché è necessario caricare prima l'intera mappa di tutti i moduli possibili.
Questa funzionalità consente di avere più mappe di importazione per documento, unendole in modo coerente e deterministico.
Intestazioni di accesso allo spazio di archiviazione
Offre un modo alternativo per attivare i cookie non partizionati per gli elementi incorporati autenticati. Queste intestazioni indicano se i cookie non partizionati sono (o possono essere) inclusi in una determinata richiesta di rete e consentono ai server di attivare le autorizzazioni di "accesso allo spazio di archiviazione" che sono già state concesse. Fornire un modo alternativo per attivare l'autorizzazione "accesso allo spazio di archiviazione" consente l'utilizzo da parte di risorse non iframe e può ridurre la latenza per gli embed autenticati.
Bug di monitoraggio 329698698 | Voce di ChromeStatus.com | Specifiche
Supportare la creazione di ClipboardItem
con Promise<DOMString>
ClipboardItem
, che è l'input del metodo write()
della clipboard asincrona, ora accetta valori di stringa oltre ai blob nel suo costruttore. ClipboardItemData
può essere un Blob, una stringa o una promessa che risolve in un Blob o una stringa.
Bug di monitoraggio 40766145 | Voce di ChromeStatus.com | Specifiche
WebAssembly Memory64
La proposta memory64 aggiunge il supporto per le memorie WebAssembly lineari di dimensioni maggiori di 2^32 bit. Non fornisce nuove istruzioni, ma estende quelle esistenti per consentire indici a 64 bit per memorie e tabelle.
Voce di ChromeStatus.com | Specifiche
API Web Authentication: metodo PublicKeyCredential
getClientCapabilities()
Il metodo PublicKeyCredential
getClientCapabilities()
consente di determinare quali funzionalità WebAuthn sono supportate dal client dell'utente. Il metodo restituisce un elenco di funzionalità supportate, consentendo agli sviluppatori di personalizzare le esperienze di autenticazione e i flussi di lavoro in base alla funzionalità specifica del client.
Bug di monitoraggio n. 360327828 | Voce di ChromeStatus.com | Specifiche
Algoritmo X25519 dell'API Web Cryptography
L'algoritmo "X25519" fornisce strumenti per eseguire lo scambio di chiavi utilizzando la funzione X25519 specificata in [RFC7748]. L'identificatore dell'algoritmo "X25519" può essere utilizzato nell'interfaccia SubtleCrypto per accedere alle operazioni implementate: generateKey, importKey, exportKey, deriveKey e deriveBits.
Bug di monitoraggio #378856322 | Voce di ChromeStatus.com | Specifiche
Prestazioni
Blocco in Risparmio energetico
Quando la modalità Risparmio energetico è attiva, Chrome blocca un "gruppo di contesti di navigazione" che è stato nascosto e non attivo per più di cinque minuti se un sottogruppo di frame dello stesso origine al suo interno supera una soglia di utilizzo della CPU, a meno che:
- Fornisce funzionalità di videoconferenza o audioconferenza (rilevate identificando l'acquisizione di microfono, videocamera o schermo/finestra/scheda o un RTCPeerConnection con un canale RTCData "aperto" o un MediaStreamTrack "live").
- Controlla un dispositivo esterno (rilevato con l'utilizzo di WebUSB, Web Bluetooth, WebHID o Web Serial).
- Contiene un blocco web o una connessione IndexedDB che blocca un aggiornamento della versione o una transazione su un'altra connessione.
- Il blocco consiste nell'interruzione dell'esecuzione. È definito formalmente nell'API Page Lifecycle.
La soglia di utilizzo della CPU verrà calibrata per bloccare circa il 10% delle schede in background quando il risparmio energetico è attivo.
Bug di monitoraggio #325954772 | Voce di ChromeStatus.com
Esporre renderTime
interorigine approssimato nei tempi degli elementi e nell'LCP (indipendentemente da Timing-Allow-Origin
)
Le voci relative alla temporizzazione degli elementi e a LCP hanno un attributo renderTime
, allineato al primo frame in cui è stata visualizzata un'immagine o un testo.
Attualmente, questo attributo è protetto per le immagini cross-origin richiedendo un'intestazione Timing-Allow-Origin
per la risorsa immagine. Tuttavia, questa limitazione è facile da aggirare (ad esempio mostrando un'immagine dello stesso e di un altro dominio nello stesso frame).
Poiché questo ha generato confusione, prevediamo di rimuovere questa limitazione e di aumentare tutti i tempi di rendering di 4 ms quando il documento non è isolato da origini diverse. Sembra sufficientemente approssimativo da evitare la fuga di informazioni utili sul momento di decodifica delle immagini cross-origin.
Bug di monitoraggio #373263977 | Voce di ChromeStatus.com | Specifiche
Ripristina responseStart
e introduci firstResponseHeadersStart
Con gli indicatori precoci 103 abilitati, le risposte hanno due timestamp:
- Quando arrivano i suggerimenti iniziali (103)
- Quando arrivano le intestazioni finali (ad es. 200)
- Quando è stato rilasciato Chrome 115 con
firstInterimResponseStart
per consentire la misurazione di questi due timestamp, abbiamo anche modificato il significato difirstInterimResponseStart
(utilizzato dal tempo di risposta al primo byte (TTFB)) in "le intestazioni finali".responseStart
Ciò ha creato un problema di compatibilità web con browser e strumenti che non hanno apportato una modifica simile per questa metrica di uso comune.
Chrome 133 ripristina questa modifica responseStart
per risolvere il problema di compatibilità e introduce firstResponseHeadersStart
per consentire ai siti di misurare il tempo fino alle intestazioni finali, mantenendo la definizione originale del TTFB.
Bug di monitoraggio 40251053 | Voce di ChromeStatus.com | Specifiche
Rendering e grafica
WebGPU: formati dei vertici a un componente (e unorm8x4-bgra)
Aggiunge formati di vertici aggiuntivi non presenti nella release iniziale di WebGPU a causa della mancanza di supporto o di vecchie versioni di macOS (che non sono più supportate da nessun browser). I formati dei vertici a un componente consentono alle applicazioni di richiedere solo i dati necessari, mentre in precedenza dovevano richiederne almeno il doppio per i tipi di dati a 8 e 16 bit. Il formato unorm8x4-bgra rende leggermente più pratico caricare i colori dei vertici codificati in BGRA mantenendo lo stesso shader.
Bug di monitoraggio n. 376924407 | Voce di ChromeStatus.com
Prove dell'origine
Disattivare il blocco in Risparmio energetico
Questa prova di disattivazione consente ai siti di disattivare il comportamento di blocco in Risparmio energetico incluso in Chrome 133.
Origin Trial | Tracking bug #325954772 | Voce di ChromeStatus.com | Specifiche
Target di riferimento per ARIA cross-root
Target di riferimento è una funzionalità che consente di utilizzare attributi IDREF come for
e aria-labelledby
per fare riferimento agli elementi all'interno dello shadow DOM di un componente, mantenendo l'incapsulamento dei dettagli interni dello shadow DOM. L'obiettivo principale di questa funzionalità è consentire ad ARIA di funzionare oltre i confini dell'elemento radice nascosto.
Un componente può specificare un elemento nel proprio albero ombra da utilizzare come "target di riferimento". Quando il componente host è il target di un IDREF, ad esempio l'attributo for
di un'etichetta, il target di riferimento diventa il target effettivo dell'etichetta.
L'elemento radice dell'ombra specifica l'ID dell'elemento target all'interno del DOM ombra. Questo viene fatto in JavaScript con l'attributo referenceTarget
dell'oggetto ShadowRoot
o nel markup HTML utilizzando l'attributo shadowrootreferencetarget
dell'elemento <template>
.
Origin Trial | Voce di ChromeStatus.com
Ritiro e rimozione
Il limite WebGPU maxInterStageShaderComponents
è deprecato
maxInterStageShaderComponents limit
è deprecato a causa di una combinazione di fattori. La data prevista per la rimozione in Chrome 135.
- Redundanza con
maxInterStageShaderVariables
: questo limite ha già un scopo simile, ovvero controlla 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 minime e possono essere gestite efficacemente entro il limite di
maxInterStageShaderVariables
. - Semplificazione: la rimozione di
maxInterStageShaderComponents
semplifica l'interfaccia dello shader e riduce la complessità per gli sviluppatori. Invece di gestire due limiti distinti con differenze sottili, possono concentrarsi sulmaxInterStageShaderVariables
più appropriato e completo.
Rimuovi la regola dei <link rel=prefetch>
cinque minuti
In precedenza, quando una risorsa veniva prelevata utilizzando <link rel=prefetch>
, Chrome ignorava la semantica della cache (ovvero max-age
e no-cache
) per il primo utilizzo entro cinque minuti, per evitare il recupero. Ora Chrome rimuove questo caso speciale
e utilizza la normale semantica della cache HTTP.
Ciò significa che gli sviluppatori web devono includere intestazioni di memorizzazione nella cache appropriate (Cache-Control o Expires) per usufruire dei vantaggi di <link rel=prefetch>
.
Questo vale anche per <link rel=prerender>
non standard.
Bug di monitoraggio #40232065 | Voce di ChromeStatus.com
Rimuovere l'attivazione della pagina di benvenuto di Chrome con le schede della prima esecuzione delle preferenze iniziali
L'inclusione di chrome://welcome
nella proprietà first_run_tabs
del
initial_preferences
file non avrà più alcun effetto. Questa pagina è stata rimossa perché è ridondante con l'esperienza di prima esecuzione che si attiva sulle piattaforme per computer.