Sottogriglia della griglia CSS, supporto delle animazioni di entrata e uscita per CSS, raggruppamento di array, helper di iteratori e altro ancora.
Se non diversamente specificato, le modifiche descritte 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 117 è in versione beta dal 16 agosto 2023. Puoi scaricare l'ultima versione su Google.com per computer o sul Google Play Store su Android.
CSS
Questa release aggiunge sei nuove funzionalità CSS. Le prime tre proprietà fanno parte del lavoro per attivare le transizioni su proprietà discrete, che consentono le animazioni di entrata e uscita.
La regola @starting-style
Questa regola-at consente agli autori di avviare le transizioni CSS al primo aggiornamento dello stile.
Le transizioni CSS non attivano le transizioni dagli stili iniziali al primo aggiornamento dello stile per un elemento o quando il tipo di visualizzazione cambia da none a un altro tipo. In questo modo si evitano transizioni impreviste dagli stili iniziali. Per avviare una transizione dal primo aggiornamento dello stile, ora puoi applicare gli stili dall'interno di una regola @starting-style. Ad esempio, il seguente CSS avvia una transizione del colore di sfondo da verde a lime al primo aggiornamento dello stile per un div:
div {
transition: background-color 0.5s;
background-color: lime;
}
@starting-style {
div {
background-color: green;
}
}
La proprietà overlay
La proprietà overlay consente agli sviluppatori di mantenere gli elementi nel livello superiore per una transizione di uscita. La proprietà overlay viene aggiunta per indicare se un elemento si trova o meno nel livello superiore e può assumere due valori: none o auto.
Proprietà transition-behavior CSS
La proprietà CSS transition-behavior è una forma estesa della proprietà transition che consente di utilizzare proprietà discrete nelle transizioni. Specificando il valore allow-discrete per transition-behavior, le proprietà discrete ora avvieranno le animazioni e passeranno dal valore iniziale al valore finale al 50%. Per le transizioni in cui display: none e content-visibility: hidden sono uno dei valori iniziali o finali, il valore visibile verrà utilizzato per l'intera durata della transizione.
Il valore subgrid della griglia CSS
Il valore subgrid per grid-template-columns e grid-template-rows è ora implementato in Chrome. Questo valore consente a una griglia nidificata di utilizzare le tracce definite nel relativo elemento principale, anziché creare una nuova definizione di traccia per righe, colonne o entrambe.
CSS text-wrap: pretty
Il valore pretty per la proprietà CSS text-wrap ottimizza il layout migliore, anziché la velocità. È destinato al corpo del testo e, pertanto, prevede più righe. Utilizzando pretty, uno sviluppatore sceglie esplicitamente un metodo di layout che potrebbe essere più lento di wrap, che ottimizza le prestazioni. L'implementazione attuale in Chrome ottimizza per le orfane per evitare che una singola parola venga visualizzata in fondo a un paragrafo di testo.
In Chrome 117, prova questa demo di text-wrap: pretty e scopri come il valore modifica la presentazione del testo.
Supporto di contain-intrinsic-size: auto none
Questa funzionalità estende la sintassi contain-intrinsic-size esistente per includere anche auto && none.
API web
Raggruppamento di array
Il raggruppamento di array è un'operazione estremamente comune, esemplificata al meglio dalla clausola GROUP BY di SQL e dalla programmazione MapReduce (che è meglio considerare come map-group-reduce). La possibilità di combinare i dati in gruppi consente agli sviluppatori di calcolare set di dati di ordine superiore, come l'età media di una coorte o i valori LCP giornalieri di una pagina web. Questa funzionalità lo consente aggiungendo i metodi statici Object.groupBy e Map.groupBy. Il metodo Object restituisce un oggetto semplice, in cui i gruppi sono chiavi di proprietà. Il metodo Map restituisce un oggetto Map, in cui le chiavi possono essere valori arbitrari.
Cancellazione dei suggerimenti del client tramite intestazione Clear-Site-Data
I siti web ora potranno svuotare la cache dei client hint utilizzando Clear-Site-Data: "clientHints". Inoltre, i client hint verranno cancellati quando "cookie", "cache" o "*" sono scelti come target dalla stessa intestazione. Questo perché se l'utente cancella i cookie nella UI, anche gli hint client vengono cancellati, la cache degli hint client è una cache e per essere coerenti con i target con caratteri jolly.
Sintassi dei caratteri jolly dell'intestazione Clear-Site-Data
I siti web ora potranno cancellare tutte le destinazioni di archiviazione ("cookie", "cache" e "spazio di archiviazione") inviando Clear-Site-Data: "*". Tieni presente che al momento Chrome non supporta la cancellazione di "executionContexts", ma se la aggiungessimo in futuro, anche qualsiasi intestazione che ha come target "*" la cancellerebbe.
customElements.getName
Il metodo customElements.getName() restituisce il nome del tag della definizione dell'elemento personalizzato specificato.
Helper degli iteratori
Gli helper degli iteratori sono nuovi metodi sul prototipo dell'iteratore per consentire l'utilizzo e il consumo generali degli iteratori.
Fai in modo che CaptureController derivi dall'interfaccia EventTarget
L'interfaccia CaptureController consente un'ulteriore manipolazione di una sessione di acquisizione schermo. In futuro, è previsto che gli eventi relativi a una sessione di acquisizione vengano inviati a quel controller. Per poter gestire i listener per questi eventi, i metodi EventTarget sono resi disponibili su CaptureController.
PerformanceResourceTiming deliveryType
La proprietà deliveryType di PerformanceResourceTiming restituisce informazioni su come è stata pubblicata una risorsa. Ad esempio, le risorse pubblicate dalla cache (attualmente esposte tramite transferSize) e le navigazioni precaricate dalla pagina precedente.
Controllo dell'overflow delle porte nei setter degli URL
Il valore della porta verrà controllato durante l'impostazione di url.port. Tutti i valori che superano il limite numerico di 16 bit non saranno più validi. Ad esempio, il seguente script si comporta in modo diverso dopo la modifica:
u = new URL("http://test.com");
u.port = 65536;
console.log(u.port);
Prima della modifica, l'output è 65536. Dopo la modifica, l'output sarà 80.
API Private State Token
Si tratta di una nuova API per la propagazione di indicatori privati limitati tra i siti, senza utilizzare identificatori persistenti tra siti come i cookie di terze parti. I metodi di lotta alle frodi che si basano su cookie di terze parti non funzioneranno una volta che questi ultimi verranno ritirati. L'API Private State Token non genera né definisce indicatori di lotta alle frodi: questo spetta alla prima parte corrispondente e agli emittenti dei token. Al contrario, l'API mantiene la privacy applicando limiti alle informazioni trasferite in questi indicatori. L'API si basa su una variante del protocollo Privacy Pass, che è in fase di standardizzazione da parte dell'IETF. Può essere considerato come una forma esposta al web dei protocolli Privacy Pass. La specifica dell'API deve essere aggiornata per le nuove versioni e i nuovi tipi di token e verrà mantenuta aggiornata con le specifiche del gruppo di lavoro Privacy Pass. Le modifiche previste riguarderebbero i protocolli crittografici sottostanti e il codice di emissione dei token: non prevediamo modifiche alle API Fetch di emissione e riscatto rivolte agli sviluppatori. L'API Private State Token era nota in precedenza come API Trust Token. È stata rinominata per acquisire in modo più accurato la semantica sottostante e per evidenziare i vantaggi per la privacy degli utenti.
Parser degli host IPv6 incorporato compatibile con gli URL IPv4 standard
Il comportamento dell'analisi del parser degli host IPv6 incorporato IPv4 verrà aggiornato per seguire rigorosamente lo standard degli URL web. Le limitazioni introdotte per l'indirizzo IPv6 sono:
- L'indirizzo IPv4 incorporato deve essere sempre composto da 4 parti.
- Gli indirizzi con meno di 4 parti, come
http://[::1.2], non saranno più validi. La funzionalità fa parte dell'interoperabilità degli URL 2023.
URL: consenti "%00" come percorso dell'URL valido
Chrome attualmente considera non valido un URL se la parte del percorso dell'URL contiene "%00" (o null), che non è conforme allo standard URL. Ad esempio, il seguente test non va a buon fine in Chrome, poiché new URL(...) genera un'eccezione di URL non valido.
assertEquals(new URL("http://example.com/%00").pathname, "/%00");
In base allo standard URL, qualsiasi carattere o sequenza di byte nel percorso dell'URL non deve rendere l'URL non valido e questa modifica aggiorna Chrome in modo che segua questo standard.
Controllo dell'estensione dell'intestazione RTP di WebRTC
Estendi l'API WebRTC RTCRtpTransceiver per offrire il controllo su quali estensioni dell'intestazione RTP vengono negoziate.
Quantizzatore per frame in VideoEncoder
Aggiunge il "quantizzatore" VideoEncoderBitrateMode per VideoEncoder.
In questo modo è possibile specificare un parametro di quantizzazione per ogni frame per i codec video AV1, VP9 e AVC.
Opzione WebUSB exclusionFilters in requestDevice()
L'opzione exclusionFilters in navigator.usb.requestDevice() consente agli sviluppatori web di escludere alcuni dispositivi dal selettore del browser. Può essere utilizzato per escludere i dispositivi che corrispondono a un filtro più ampio, ma che non sono supportati.
Origin trial in corso
In Chrome 117 puoi attivare i seguenti nuovi origin trial.
Trasporto del dizionario di compressione con Brotli condiviso
Questa funzionalità aggiunge il supporto per l'utilizzo di risposte precedenti designate come dizionario esterno per le risposte HTTP con compressione Brotli.
Registrati all'origin trial CompressionDictionaryTransport.
deprecation trial di WebSQL
WebSQL verrà rimosso da Chrome. I siti che si basano su questa funzionalità sono invitati a passare a SQLite tramite Wasm.
Questo deprecation trial offre agli sviluppatori che hanno bisogno di più tempo per la migrazione la possibilità di continuare a utilizzare WebSQL fino a Chrome 123 (marzo 2024). Registrati alla deprecation trial di WebSQL.
App web con schede
Consenti alle finestre delle app web di avere una tabstrip, ad esempio per modificare più documenti nella stessa app. In questo modo viene aggiunta una nuova modalità di visualizzazione "con schede" e un nuovo campo manifest per consentire le personalizzazioni della tabstrip.
Registrati all'origin trial delle app web con schede.
Deprecazioni 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 due funzionalità.
Ritiro dell'evento unload
Chrome 117 avvierà il processo di ritiro del gestore di eventi unload. Se il tuo sito li utilizza, ti consigliamo vivamente di leggere il post dedicato al ritiro di unload per ulteriori dettagli.
Ritiro delle firme del server SHA-1 TLS
Chrome sta rimuovendo il supporto per gli algoritmi di firma che utilizzano SHA-1 per le firme dei server durante il TLS handshake. Ciò non influisce sul supporto di SHA-1 nei certificati server, che è già stato rimosso, o nei certificati client, che continua a essere supportato.
Questa release di Chrome rimuove quattro funzionalità.
[WebRTC] Rimozione della versione legacy di getStats() basata su callback
RTCPeerConnection ha due versioni di getStats(), una conforme alle specifiche che restituisce il report tramite la risoluzione di una promise e una non standard che restituisce un report molto diverso tramite un callback come primo argomento. Quello basato su callback è stato rimosso.
Per saperne di più sulla migrazione e su cosa fare se hai bisogno di più tempo, consulta la guida alla migrazione di getStats() legacy.
Rimozione del valore -1 per WebRTC getStats datachannelIdentifier
L'API getStats di WebRTC espone una proprietà dataChannelIdentifier. Non fornirà più il valore "-1" nei casi in cui le statistiche vengono interrogate prima che venga stabilita la connessione al canale dati. Invece, il membro del dizionario verrà omesso.
Rimozione di WebRTC getStats encoderImplementation e decoderImplementation "unknown"
L'API getStats di WebRTC espone i nomi di implementazione del codificatore e del decodificatore per i video in uscita e in entrata. Non fornirà più il valore "unknown" nei casi in cui le statistiche vengono interrogate prima che un frame video sia stato codificato o decodificato. Invece, il membro del dizionario verrà omesso.
Proprietà CSS -webkit-highlight
Rimuovi la proprietà CSS -webkit-highlight destinata a evidenziare il testo, ma mai standardizzata. Non ha alcun effetto visibile in Chromium (viene analizzato, ma non viene mai utilizzato per il rendering dei contenuti). La proprietà è stata rimossa da WebKit nel 2014, è stata contrassegnata come deprecata su MDN ed è stata sostituita di recente con la specifica CSS Highlight Pseudo.