Chrome 117 beta

Griglia della griglia CSS, supporto dell'animazione di entrata e uscita per CSS, raggruppamento di array, aiutanti iteratori e altro ancora.

Se non diversamente specificato, le modifiche descritte si applicano all'ultima release 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 a partire dal 16 agosto 2023. Puoi scaricare la versione più recente da Google.com per computer o dal Google Play Store su Android.

CSS

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

La regola @starting-style

Questa regola 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 di un elemento o quando il tipo di visualizzazione passa da none a un altro tipo. Questo per evitare 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 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 o meno nel livello superiore e può assumere due valori: none o auto.

Proprietà del comportamento della transizione CSS

La proprietà CSS transition-behavior è un componente esteso della proprietà transition, che consente di utilizzare proprietà discrete nelle transizioni. Se specifichi il valore allow-discrete per il comportamento delle transizioni, le proprietà discrete avvieranno animazioni e passeranno dal valore iniziale al valore finale (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.

Valore della griglia 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, invece di creare una nuova definizione per le righe, le colonne o entrambe.

Testo a capo CSS: bello

Il valore pretty per la proprietà CSS text-wrap viene ottimizzato per il layout migliore, anziché per la velocità. È destinato al corpo del testo e pertanto prevede più righe. Se utilizzi pretty, uno sviluppatore attiva esplicitamente un metodo di layout che potrebbe essere più lento di wrap, in modo da ottimizzare le prestazioni. L'attuale implementazione in Chrome esegue l'ottimizzazione per gli orfani in modo da impedire la visualizzazione di una singola parola in fondo a un paragrafo di testo.

In Chrome 117 prova questa demo di text-wrap: mante e osserva come il valore cambia la presentazione di testo.

contengono-intrinsic-size: supporto auto none

Questa funzionalità estende la sintassi contain-intrinsic-size esistente in modo da includere anche auto && none.

API web

Raggruppamento di array

Il raggruppamento di array è un'operazione estremamente comune, spiegata al meglio dalla clausola GROUP BY di SQL e dalla programmazione MapReduce (che si pensa meglio 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à consente di farlo aggiungendo i metodi statici Object.groupBy e Map.groupBy. Il metodo Object restituisce un oggetto semplice, dove i gruppi sono chiavi di proprietà. Il metodo Map restituisce una mappa in cui le chiavi possono essere valori arbitrari.

Cancella i client hint tramite l'intestazione Clear-Site-Data

Ora i siti web potranno svuotare la cache dei suggerimenti client utilizzando Clear-Site-Data: "clientHints". Anche i suggerimenti del client saranno cancellati quando "cookie", "cache" o "*" vengono scelti come target dalla stessa intestazione. Questo perché, se l'utente cancella i cookie nei client dell'interfaccia utente, anche la cache dei suggerimenti del client è già svuotata, in modo che sia coerente con le destinazioni dei caratteri jolly.

Sintassi del carattere jolly per l'intestazione Clear-Site-Data

I siti web ora saranno in grado di cancellare tutti i target di archiviazione ("cookie", "cache" e "archiviazione") inviando Clear-Site-Data: "*". Tieni presente che al momento Chrome non supporta la cancellazione di "executionContexts", ma se lo aggiungessimo in futuro, qualsiasi targeting dell'intestazione "*" li cancellerebbe anche.

customElements.getName

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

Aiutanti iteratori

Gli aiutanti iteratori sono nuovi metodi sul prototipo di iteratore per consentire l'utilizzo e il consumo generali degli iteratori.

Imposta CaptureController in base all'interfaccia EventTarget

L'interfaccia CaptureController consente di modificare ulteriormente una sessione di acquisizione schermo. In futuro, è previsto 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 stati resi disponibili su CaptureController.

Tipo di pubblicazione PerformanceResourceTempi

La proprietà deliveryType di PerformanceResourceTiming restituisce informazioni sulla modalità di pubblicazione di 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 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, lo script seguente 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

Questa è una nuova API per propagare indicatori privati limitati tra i siti, senza utilizzare identificatori permanenti tra siti come i cookie di terze parti. I metodi antifrode che si basano su cookie di terze parti non funzioneranno una volta che questi cookie saranno deprecati. L'API Private State Token non genera né definisce indicatori antifrode: questo dipende dalla parte proprietaria corrispondente e dagli emittenti del token. Piuttosto, 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 considerata come 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 e verranno mantenute aggiornate in base alle specifiche del gruppo di lavoro Privacy Pass. Le modifiche previste riguarderanno i protocolli crittografici sottostanti e il codice di emissione di token: non prevediamo modifiche alle API di recupero di emissione e utilizzo rivolte agli sviluppatori. L'API Private State Token era precedentemente nota come API Trust Token. È stato rinominato per acquisire più accuratamente la semantica sottostante ed evidenziare i vantaggi in termini di privacy per gli utenti.

Parser dell'host IPv6 integrato con IPv4 compatibile con URL

Il comportamento dell'analisi del parser IPv6 incorporato in IPv4 verrà aggiornato in modo che segua rigorosamente lo standard degli 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 4 parti, come http://[::1.2], non saranno più validi. La funzionalità fa parte dell'interoperabilità di URL 2023.

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

Al momento Chrome considera un URL non valido se la parte del percorso dell'URL contiene "%00" (o null), non conforme allo standard dell'URL. Ad esempio, il seguente test non va a buon fine in Chrome, perché new URL(...) genera un'eccezione 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 dovrebbe 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 offrire il controllo su quali estensioni intestazione RTP vengono negoziate.

Quantizzatore per fotogramma nel codificatore video

Aggiunge "quantizer" VideoEncoderBitrateMode per VideoEncoder. Ciò consente di specificare un parametro di quantizzazione per ogni frame per i codec video AV1, VP9 e AVC.

Opzione exclusionFilters WebUSB in requestDevice()

L'opzione exclusionFilters in navigator.usb.requestDevice() consente agli sviluppatori web di escludere alcuni dispositivi dal selettore del browser. Può essere utilizzata per escludere i dispositivi che corrispondono a un filtro più ampio, ma che non sono supportati.

Prove dell'origine in corso

In Chrome 117 puoi attivare le seguenti nuove prove delle origini.

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 di compressione Brotli.

Registrati per la prova dell'origine di CompressionDictionaryTransport.

Prova relativa al ritiro di WebSQL

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

Questa prova del ritiro 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 prova del ritiro di WebSQL.

App web a schede

Consenti alle finestre delle app web di avere una striscia di schede, ad esempio per modificare più documenti nella stessa app. Vengono aggiunti una nuova modalità di visualizzazione "a schede" e un nuovo campo manifest per consentire le personalizzazioni della scheda.

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

Rimozioni e deprecazioni

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.

Questa versione di Chrome ritira due funzionalità.

Depreca l'evento unload

Chrome 117 avvierà il processo di ritiro del gestore di eventi unload. Se il tuo sito le utilizza, ti consigliamo vivamente di leggere il post dedicato sul ritiro di unload per maggiori dettagli.

Deprecazione delle firme del server SHA-1 TLS

Chrome rimuoverà il supporto per gli algoritmi di firma che utilizzano SHA-1 per le firme del server durante l'handshake TLS. Questo non influisce sul supporto dell'algoritmo SHA-1 nei certificati server, che erano già stati rimossi, o nei certificati client, che continuano a essere supportati.

In questa versione di Chrome vengono rimosse quattro funzionalità.

[WebRTC] Annulla l'invio di getStats() legacy basato su callback

RTCPeerConnection ha due versioni di getStats(): una conforme alle specifiche che restituisce il report risolvendo una promessa e una non standard che restituisce un report molto diverso tramite un callback come primo argomento. Quella basata sul callback è stata rimossa.

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

Rimozione del valore -1 per WebRTC getStats datachannelIdentifier

L'API WebRTC getStats espone una proprietà dataChannelIdentifier. Non fornirà più il valore "-1" nei casi in cui le query sulle statistiche vengano eseguite prima che venga stabilita la connessione datachannel. ma verrà omesso.

Rimozione del codificatore getStats di WebRTCImplementation e decoderImplementation "sconosciuto"

L'API WebRTC getStats espone i nomi di implementazione del codificatore e del decoder per i video in uscita e in entrata. Non fornirà più il valore "unknown"Clear (sconosciuto) nei casi in cui vengono eseguite query sulle statistiche prima che un frame video venisse codificato o decodificato. ma 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 Chrome (viene analizzato ma mai utilizzato nel 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 pseudo CSS Highlight.