Chrome 117 beta

Griglia secondaria della griglia CSS, supporto delle animazioni di entrata e uscita per CSS, raggruppamento di array, helper per iteratori e altro ancora.

Se non diversamente indicato, le modifiche descritte si applicano alla release del canale beta di Chrome più recente per Android, ChromeOS, Linux, macOS e Windows. Scopri di più sulle funzionalità elencate qui tramite i link forniti o nell'elenco su ChromeStatus.com. Chrome 117 è in versione beta dal 16 agosto 2023. Puoi scaricare la versione più recente su Google.com per computer o dal Google Play Store su Android.

CSS

In questa release sono state aggiunte sei nuove funzionalità CSS. Le prime tre proprietà fanno parte del lavoro per consentire le transizioni su proprietà discrete, che abilitano le animazioni di ingresso e uscita.

La regola di @starting-style

Questa regola at-rule consente agli autori di avviare transizioni CSS al primo aggiornamento dello stile.

Le transizioni CSS non attivano le transizioni dagli stili iniziali al primo aggiornamento dello stile di un elemento o quando il tipo di visualizzazione cambia da none a qualche altro tipo. Questo serve a evitare transizioni impreviste dagli stili iniziali. Per avviare una transizione dal primo aggiornamento dello stile, ora puoi applicare gli stili da una regola @starting-style. Ad esempio, il seguente CSS avvia una transizione del colore di sfondo da verde a lime al primo aggiornamento di stile di 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 nel livello superiore o meno e può avere due valori: none o auto.

Proprietà del comportamento di transizione del CSS

La proprietà CSS transition-behavior è una longevità della proprietà transition che consente di utilizzare proprietà discrete nelle transizioni. Se specifichi il valore allow-discrete per il comportamento di transizione, 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 iniziale o finale, il valore visibile verrà utilizzato per l'intera durata della transizione.

Valore della griglia secondaria 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 nell'elemento principale anziché creare una nuova definizione di monitoraggio per righe, colonne o entrambe.

Aggregazione di testo CSS: piuttosto

Il valore pretty per la proprietà text-wrap del CSS viene ottimizzato per avere il layout migliore, anziché la velocità. È destinato al corpo del testo e, pertanto, è previsto l'uso di più righe. Utilizzando pretty, uno sviluppatore sta esplicitamente attivando un metodo di layout che potrebbe essere più lento rispetto a wrap, ottimizzando le prestazioni. L'attuale implementazione in Chrome è ottimizzata per gli orfani, in modo da impedire che una sola parola venga visualizzata in fondo a un paragrafo di testo.

In Chrome 117, prova questa demo di text-wrap: stuff e guarda come il valore cambia la presentazione del testo.

contengono-intrinsic-size: supporto automatico per nessuno

Questa funzionalità estende la sintassi esistente di contain-intrinsic-size per includere anche auto && none.

API web

Raggruppamento di array

Il raggruppamento di array è un'operazione estremamente comune, meglio rappresentata dalla clausola GROUP BY di SQL e dalla programmazione MapReduce (che si pensa meglio di 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 per una pagina web. Questa funzionalità consente di aggiungere 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 una mappa in cui le chiavi possono essere valori arbitrari.

Cancella client hint tramite intestazione Clear-Site-Data

Ora i siti web potranno svuotare la cache dei client hint utilizzando Clear-Site-Data: "clientHints". Ora i client hint verranno cancellati anche quando vengono utilizzati "cookie", "cache" o "*" sono target della stessa intestazione. Questo perché se l'utente cancella i cookie nei client hint dell'interfaccia utente sono già stati cancellati, anche la cache dei client hint è una cache ed è coerente con le destinazioni con caratteri jolly.

Sintassi del carattere jolly nell'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 Chrome non supporta la cancellazione di "executionContexts" al momento, ma se in futuro è stato aggiunto il targeting per intestazione "*" le cancella anche.

customElements.getName

Il metodo customElements.getName() restituisce il nome tag della definizione di elemento personalizzato specificata.

Supporti per iteratori

Gli aiutanti di iteratori sono nuovi metodi nel prototipo di un iteratore per consentire l'utilizzo generale e il consumo degli iteratori.

Rendi CaptureController derivato dall'interfaccia EventTarget

L'interfaccia CaptureController consente di gestire ulteriormente una sessione di acquisizione schermo. In futuro, si prevede che gli eventi relativi a una sessione di acquisizione vengano inviati su quel controller. Per poter gestire i listener per questi eventi, i metodi EventTarget sono resi disponibili su CaptureController.

Tipo di consegna PerformanceResourceTiming

La proprietà deliveryType di PerformanceResourceTiming restituisce informazioni sulla modalità di pubblicazione di una risorsa. Ad esempio, risorse caricate dalla cache (attualmente esposte tramite transferSize) e navigazioni precaricate dalla pagina precedente.

Controllo dell'overflow delle porte nei setter URL

Il valore della porta verrà controllato durante l'impostazione di url.port. Tutti i valori che superano il limite numerico a 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 segnali privati limitati tra i siti, senza utilizzare identificatori permanenti tra siti come i cookie di terze parti. I metodi antifrode che si basano sui cookie di terze parti non funzioneranno una volta che questi ultimi saranno stati deprecati. L'API Private State Token non genera né definisce indicatori antifrode: questa decisione spetta alla parte proprietaria corrispondente e agli emittenti del token. Piuttosto, l'API mantiene la privacy applicando limiti sulle informazioni trasferite in questi indicatori. L'API si basa su una variante del protocollo Privacy Pass, che è in fase di standardizzazione da parte della IETF. Può essere considerata una forma esposta al web dei protocolli Privacy Pass. Le specifiche dell'API devono essere aggiornate per le nuove versioni e i nuovi tipi di token, oltre a quelle del gruppo di lavoro Privacy Pass. Le modifiche previste riguarderanno i protocolli crittografici sottostanti e il codice di emissione dei token: non prevediamo cambiamenti nelle API di recupero di emissione e utilizzo rivolte agli sviluppatori. L'API Private State Token in precedenza era nota come API Trust Token. Viene rinominata per acquisire in modo più accurato la semantica sottostante ed evidenziare i vantaggi in termini di privacy per gli utenti.

Parser degli host IPv6 incorporato compatibile con gli URL URL

Il comportamento dell'analisi dell'analizzatore sintattico host IPv4 incorporato IPv4 verrà aggiornato in modo che rispetti rigorosamente lo standard per gli URL web. Le restrizioni introdotte per l'indirizzo IPv6 sono:

  • L'indirizzo IPv4 incorporato deve essere sempre composto da quattro parti.
  • Gli indirizzi con meno di quattro parti, ad esempio http://[::1.2], non saranno più validi. La funzionalità fa parte dell'interoperabilità degli URL 2023.

URL: consenti "%00" come percorso dell'URL valido

Al momento Chrome considera non valido un URL se la parte del percorso dell'URL contiene "%00" (o nullo), non conforme allo standard degli URL. Ad esempio, il seguente test non va a buon fine in Chrome, poiché new URL(...) genera un'eccezione per l'URL non valido.

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

In base allo standard dell'URL, qualsiasi sequenza di caratteri o 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 intestazione WebRTC RTP

Estendi l'API WebRTC RTCRtpTransceiver per consentire di controllare quali estensioni dell'intestazione RTP vengono negoziate.

Quantizzatore per frame in VideoEncoder

Aggiunge "quantizer" VideoEncoderBitrateMode per VideoEncoder. Consente di 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 non sono supportati.

Prove dell'origine in corso

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

Trasporto del dizionario di compressione con Brotli condiviso

Questa funzionalità aggiunge il supporto per l'utilizzo di risposte precedenti designate, come un dizionario esterno per le risposte HTTP di compressione Brotli.

Registrati alla prova dell'origine di CompressionDictionaryTransport.

Prova di ritiro di WebSQL

È in corso la rimozione di WebSQL da Chrome. Consigliamo ai siti che utilizzano questo strumento di passare a SQLite tramite Wasm.

Questa prova relativa al ritiro offre agli sviluppatori che hanno bisogno di più tempo per la migrazione di continuare a utilizzare WebSQL fino a Chrome 123 (marzo 2024). Registrati alla prova relativa al ritiro di WebSQL.

App web a schede

Consenti alle finestre di app web di avere una scheda di tabulazione, ad esempio, per modificare più documenti nella stessa app. Viene aggiunta una nuova modalità di visualizzazione "a schede" e un nuovo campo manifest per consentire personalizzazioni della tabstrip.

Registrati alla prova dell'origine delle app web a schede.

Rimozioni e rimozioni

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

In questa versione di Chrome vengono ritirate due funzionalità.

Ritira l'evento di unload

Chrome 117 avvierà la procedura di ritiro del gestore di eventi unload. Se il tuo sito utilizza questi strumenti, ti consigliamo vivamente di leggere il post dedicato sul ritiro di unload per ulteriori dettagli.

Ritira le firme del server SHA-1 TLS

Chrome rimuoverà il supporto per gli algoritmi di firma che utilizzano SHA-1 per le firme dei server durante l'handshake TLS. Ciò non influisce sul supporto SHA-1 nei certificati server, che era già stato rimosso, o nei certificati client, che continuano a essere supportati.

In questa versione di Chrome sono state rimosse quattro funzionalità.

[WebRTC] Rimuovi la 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 promessa e una non standard che restituisce un report molto diverso tramite un callback come primo argomento. Quello basato su callback verrà rimosso.

Per ulteriori informazioni sulla migrazione e su cosa fare se hai bisogno di più tempo, consulta la Guida alla migrazione legacy di getStats().

Rimozione del valore -1 per WebRTC getStats datachannelIdentifier

L'API getStats WebRTC espone una proprietà dataChannelIdentifier. Non fornirà più il valore "-1" nei casi in cui viene eseguita una query sulle statistiche prima che venga stabilita la connessione Datachannel. Il membro del dizionario verrà omesso.

Rimozione di WebRTC getStats encoderImplementation e decoderImplementation "unknown"

L'API getStats di WebRTC espone i nomi di implementazione di encoder e decoder per i video in uscita e in entrata. Non fornirà più il valore "sconosciuto"" nei casi in cui viene eseguita una query sulle statistiche prima della codifica o decodifica di un frame video. 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 cromo (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 recentemente sostituita con la specifica CSS Highlight Pseudo.