Mascheramento CSS, regole semplificate per la nidificazione dei CSS, creazione di pattern di accordion con l'elemento <details>
, l'azione enterpictureinpicture
per l'API Media Session.
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 120 è in versione beta a partire dal 1° novembre 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 sette nuove funzionalità CSS.
Sintassi <image>
del CSS per le proprietà personalizzate registrate
Supporta l'utilizzo della sintassi <image>
per le proprietà personalizzate registrate con @property
o registerProperty()
. È possibile utilizzare la sintassi <image>
per limitare i valori della proprietà personalizzata a valori url()
e immagini generate come i gradienti.
Sintassi CSS <transform-function>
e <transform-list>
per le proprietà personalizzate registrate
Supporta l'utilizzo delle sintassi <transform-function>
e <transform-list>
per le proprietà personalizzate registrate con @property
o registerProperty()
.
La sintassi può essere utilizzata per limitare i valori della proprietà personalizzata per rappresentare le trasformazioni. In questo modo, è possibile utilizzare le transizioni e le animazioni direttamente in queste proprietà personalizzate registrate.
Query supporti: funzionalità di scripting
La funzionalità multimediale di scripting viene utilizzata per chiedere se i linguaggi di scripting, come JavaScript, sono supportati nel documento corrente. Le opzioni valide sono "attivato", "solo iniziale" e "nessuno". Tuttavia, "solo iniziale" non corrisponde mai all'interno di un browser.
Selettore pseudo-classe :dir()
Il selettore di pseudo-classi CSS :dir()
abbina gli elementi in base alla direzione, che è determinata in base all'attributo dir HTML.
:dir(ltr)
corrisponde alla direzione del testo da sinistra a destra.
:dir(rtl)
abbina gli elementi con direzionalità del testo da destra a sinistra.
Non equivale ai selettori di attributi [dir]
perché corrisponde alle direzioni ereditate da un predecessore con l'attributo dir
e perché corrisponde alla direzione calcolata in base all'uso di dir=auto
(che determina la direzione di marcia dal primo carattere nel testo con direzionalità elevata).
Funzioni esponenziali CSS
Aggiunge le funzioni esponenziali CSS: pow()
, sqrt()
, hypot()
, log()
e exp()
dalla specifica Valori e unità CSS di livello 4.
Mascheramento CSS
CSS mask
e proprietà correlate come mask-image
e mask-mode
vengono utilizzate per nascondere un elemento (parzialmente o completamente) mascherando o ritagliando l'immagine in punti specifici.
Questa funzionalità annulla il prefisso delle proprietà -webkit-mask*
e le rende in linea con le specifiche attuali. Sono inclusi mask-image
, mask-mode
, mask-repeat
, mask-position
, mask-clip
, mask-origin
, mask-size
e mask-composite
, nonché la forma abbreviata di mask
. I riferimenti mask-image
locali sono supportati, la serializzazione ora corrisponde alla specifica e i valori accettati corrispondono alla specifica (ad esempio, add
anziché source-over
per mask-composite
.)
Nidificazione CSS confortevole
Questa modifica all'implementazione della nidificazione CSS consente alle regole di stile nidificate di iniziare con un elemento, ad esempio h1
, anziché richiedere il simbolo &
davanti o essere aggregato con is()
. L'esempio seguente è ora valido nella specifica e funziona in Chrome 120.
.card {
h1 {
/* h1 does not start with a symbol */
}
}
HTML
Motivo a soffietto con attributo nome su <details>
Questa funzionalità aggiunge la possibilità di creare accordion utilizzando una sequenza di elementi <details>
HTML. Aggiunge un attributo nome all'elemento <details>
. Quando viene utilizzato questo attributo, più elementi <details>
con lo stesso nome formano un gruppo. Al massimo un elemento del gruppo può essere aperto alla volta.
API web
Consenti il trasferimento di ArrayBuffer nei costruttori VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk e ImageDecoder
In questo modo sarà possibile scollegare i buffer dell'array e utilizzare i buffer corrispondenti all'interno di VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk e AudioData senza una copia.
FontFaceSet dell'API CSS Font Upload: metodo check()
Il metodo check()
di FontFaceSet
verifica se è possibile mostrare testo utilizzando i caratteri specificati senza tentare di utilizzare i caratteri di FontFaceSet
di cui non è stato completato il caricamento. In questo modo gli utenti possono utilizzare il carattere in modo sicuro senza attivare in seguito la sostituzione del carattere.
Richieste di chiusura e CloseWatcher
Le richieste di chiusura sono un nuovo concetto che include le richieste degli utenti di chiudere qualcosa attualmente aperto utilizzando il tasto Esc sul computer oppure il gesto o il pulsante Indietro su Android. La loro integrazione in Chrome comporta due cambiamenti:
CloseWatcher
, una nuova API per ascoltare e rispondere direttamente alle richieste di chiusura.- Esegue l'upgrade a
<dialog>
epopover=""
per utilizzare il nuovo framework di richiesta di chiusura, in modo da rispondere al pulsante Indietro di Android.
Worker dedicati e API Storage Access
I worker dedicati erediteranno lo stato di accesso allo spazio di archiviazione del contesto padre. Pertanto, se un documento ottiene l'accesso allo spazio di archiviazione tramite document.requestStorageAccess()
e poi crea un worker dedicato, anche il worker avrà accesso allo spazio di archiviazione (e potrà accedere ai cookie non partizionati).
FedCM: API Error e API AutoSelectedFlag
API dedicate per aiutare sviluppatori e utenti a comprendere meglio il flusso di autenticazione. Entrambe le API vengono attivate dopo l'autorizzazione dell'utente ad accedere a un sito web o a un'applicazione (in questo contesto noto come parte dipendente) con un provider di identità. In altre parole, dopo che l'utente fa clic sul pulsante Continua come.
Con l'API Error, se il tentativo di accesso di un utente non va a buon fine, il provider di identità può condividere i motivi con il browser per mantenere aggiornati sia gli utenti sia gli sviluppatori RP.
Con l'API AutoSelectedFlag, sia il provider di identità che gli sviluppatori RP possono avere una migliore comprensione della UX di accesso e valutare il rendimento e segmentare le metriche di conseguenza.
Scopri di più nel post del blog su FedCM Chrome 120.
Aggiornamenti delle funzionalità dei frame recintati
È disponibile un'opzione di formato aggiuntiva per le macro delle dimensioni degli annunci Protected Audience nell'API Protected Audience all'interno di Privacy Sandbox. Una funzionalità di attivazione consente di utilizzare le macro per specificare le dimensioni dell'annuncio che vince l'asta nell'URL dell'annuncio, ad esempio:
https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}
Per una maggiore coerenza con altri tipi di macro in Protected Audience, come quelli utilizzati da deprecatedReplaceInURN
e registerAdMacro()
, in Chrome 120 stiamo aggiungendo la possibilità di utilizzare ${AD_WIDTH} e ${AD_HEIGHT} come formato per le macro, oltre al formato attuale.
I beacon automatici verranno ora inviati a tutti gli URL registrati. In precedenza, solo le destinazioni specificate durante la chiamata al numero setReportEventDataForAutomaticBeacons()
ricevono beacon automatici, anche se quella destinazione chiamata registerAdBeacon()
per reserved.top_navigation
nel suo worklet. Ora, qualsiasi destinazione che chiama registerAdBeacon()
per reserved.top_navigation
riceverà un beacon automatico, ma solo le destinazioni specificate in setReportEventDataForAutomaticBeacons()
riceveranno dati da beacon automatico insieme al beacon. Il parametro once
in setReportEventDataForAutomaticBeacons()
determinerà se i dati vengono inviati una volta sola, anziché determinare se l'intero beacon viene inviato una sola volta.
Margine di scorrimento dell'osservatore di intersezione
L'osservatore di intersezione scrollMargin
consente agli sviluppatori di osservare i target all'interno di contenitori di scorrimento nidificati, che al momento sono ritagliati dai contenitori di scorrimento. A questo scopo, si espande il rettangolo di ritaglio del container di scrollMargin
durante il calcolo dell'intersezione.
Report sulle violazioni delle norme relative alle autorizzazioni
Questa operazione integra l'API per i criteri delle autorizzazioni con l'API di reporting, consentendo agli sviluppatori web di configurare gli endpoint a cui verranno inviati i report sulle violazioni dei criteri relativi alle autorizzazioni, consentendo ai proprietari dei siti di sapere quando vengono richieste funzionalità non consentite sulle loro pagine sul campo.
Include inoltre l'intestazione Permissions-Policy-Report-Only
, che consente di inviare i report in base a un criterio proposto (analogamente a Content-Security-Policy-Report-Only
) in modo che le modifiche ai criteri possano essere valutate per individuare potenziali interruzioni prima di implementarle nella modalità di applicazione normale.
API Media Session: enterpictureinpicture
azione
Aggiunge un'azione enterpictureinpicture
all'API Media Session. I siti web possono registrare un gestore di azioni che può essere utilizzato per aprire una finestra Picture in picture o Picture in picture documento.
Scopri di più in Picture in picture automatica per le app web.
Supporto WebGPU f16
Consente l'utilizzo del tipo in virgola mobile a mezza precisione f16 negli Shaper WebGPU (WGSL).
Gli sviluppatori possono usare "shader-f16" delle specifiche WebGPU e "f16" della specifica WGSL per accedere alle API e alle variabili in virgola mobile a 16 bit nei loro shaper.
MediaCapabilities: esegui query sul supporto HDR con decodingInfo()
Estende l'API Media Capabilities per consentire il rilevamento del supporto del rendering HDR tramite tre nuovi campi del dizionario VideoConfiguration: hdrMetadataType
, colorGamut
e transferFunction
. Chrome implementa i propri algoritmi di mappatura dei toni, quindi restituirà sempre true per i metadati statici HDR10 (smpteSt2086). I metadati dinamici HDR10+ (smpteSt2094-10) e Dolby Vision (smpteSt2094-40) non sono attualmente supportati, quindi restituiranno il valore false. Prevediamo di aggiungere il supporto per i metadati dinamici in futuro, quindi questa API consentirà agli sviluppatori di selezionare i contenuti appropriati per gli utenti che riceveranno assistenza.
Statistiche MediaStreamTrack (video)
Un'API che espone i contatori di frame (caricati, eliminati, in totale) per MediaStreamTracks di tipo video. Le statistiche audio verranno incluse nel lancio di una funzionalità di Chrome separata.
API Private Aggregation: selezione coordinatore aggregazione
Modifica all'API Private Aggregation per fornire un meccanismo per selezionare il coordinatore da utilizzare per la crittografia del payload (da una lista consentita specificata dal fornitore). La scelta del servizio viene effettuata con un'opzione aggiuntiva nelle chiamate SharedStorage run()
e selectURL()
e nelle chiamate Protected Audience runAdAuction()
e joinAdInterestGroup()
. Questo approccio ampio è in linea con quello dell'API Attribution Reporting.
L'API Login Status in FedCM
L'API Login Status (in precedenza API Sign-in Status IdP) consente ai provider di identità di segnalare al browser quando gli utenti eseguono l'accesso o la disconnessione.
Questo viene utilizzato da FedCM per affrontare un attacco di tempo silenzioso e, in questo modo, consente a FedCM di funzionare senza cookie di terze parti.
In futuro questa API potrebbe diventare disponibile per altri casi d'uso.
Scopri di più nel post del blog relativo all'annuncio.
Visualizza transizioni: come rendere non nulli i callback
Al momento, la chiamata startViewTransition
accetta un tipo di callback nullo facoltativo con un valore predefinito null: startViewTransition(optional UpdateCallback? callback = null)
.
Con questa funzionalità, il tipo startViewTransition(optional UpdateCallback callback)
non è null.
Incapsulamento della chiave X25519Kyber768 per TLS
Proteggi il traffico TLS di Chrome attuale dalla futura crittoanalisi quantistica eseguendo il deployment dell'algoritmo chiave dell'accordo chiave resistente quantico Kyber768. Questo è un contratto chiave ibrido X25519 + Kyber768 basato su uno standard IETF. Questa specifica e questo lancio non rientrano nell'ambito di W3C. Questo accordo chiave verrà lanciato come crittografia TLS e deve essere trasparente per gli utenti.
Prove dell'origine in corso
In Chrome 120 puoi attivare le seguenti nuove prove dell'origine.
'priorità' Intestazione richiesta HTTP
Questa funzionalità aggiunge l'intestazione priority
per tutte le richieste HTTP con le informazioni sulla priorità della richiesta al momento dell'invio.
RFC 9218 (Extensible Prioritization Scheme per HTTP) definisce una "priorità" Intestazione della richiesta HTTP da utilizzare per segnalare la priorità della richiesta alle origini (e agli intermediari). Inoltre, definisce i processi di negoziazione e i frame a livello di protocollo per HTTP/2 e HTTP/3 che devono includere le stesse informazioni di priorità. L'intestazione può segnalare la priorità iniziale di una risorsa solo quando è stata richiesta per la prima volta, mentre i meccanismi basati su frame consentono di modificare la priorità in seguito. L'intestazione può operare end-to-end verso i server di origine (e fornire un meccanismo affinché l'origine sostituisca la priorità se riconosciuta dagli intermediari) mentre i frame sono limitati a operare a livello di collegamento. Questa funzionalità supporta nello specifico lo schema di priorità basato su intestazioni.
Estensione dell'API Storage Access (SAA) all'archiviazione non basata sui cookie
Proponiamo un'estensione dell'API Storage Access (compatibile con le versioni precedenti) per consentire l'accesso allo spazio di archiviazione non partizionato (cookie e non cookie) in un contesto di terze parti.
Autorizzazione di accesso alla rete privata per rilasciare contenuti misti
Per stabilire connessioni a dispositivi su una rete locale che non hanno nomi univoci globali e che quindi non possono ottenere certificati TLS, questa funzionalità introduce una nuova opzione per fetch()
per dichiarare di comunicare con un dispositivo di questo tipo, una nuova funzionalità controllata da norme che consente di limitare ogni sito l'accesso a questa funzionalità e nuove intestazioni per la risposta preflight del server al fine di fornire metadati aggiuntivi.
Registrati alla prova dell'origine della richiesta di autorizzazione di accesso alla rete privata.
Accesso senza limitazioni a performance.measureUserAgentSpecificMemory()
performance.measureUserAgentSpecificMemory() è specificato solo in ambienti con isolamento multiorigine (dietro COOP/COEP). Questa funzionalità rimuove la limitazione COOP/COEP per consentire i test di regressione e la misurazione dell'impatto quando non è possibile implementare completamente COOP/COEP. Tieni presente che non è possibile utilizzare performance.memory (API legacy) per questo scopo perché non è mai stato abilitato sui worker.
performance.measureUserAgentSpecificMemory()
La funzionalità aggiunge una funzione performance.measureUserAgentSpecificMemory()
che stima l'utilizzo della memoria della pagina web. Per utilizzare l'API, il sito web deve essere isolato multiorigine.
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 viene ritirata una funzionalità.
Ritira e rimuovi il supporto di Theora
Chrome ritirerà e rimuoverà il supporto per il codec video Theora nella versione desktop di Chrome a causa di rischi per la sicurezza emergenti. Il basso utilizzo (e ora spesso non corretto) di Theora non giustifica più il supporto per la maggior parte degli utenti.
In questa versione di Chrome sono state rimosse due funzionalità.
Rimuovi i dati: URL in SVGUseElement
Assegnazione di un dato: URL in SVGUseElement può causare XSS (cross-site scripting). Questo ha portato anche a un'esclusione dei tipi di fiducia. Pertanto, prevediamo di ritirare e rimuovere il relativo supporto.
Rimuovi l'applicazione generale della stessa origine in CSPEE
Rimuove un trattamento speciale per gli iframe della stessa origine dall'applicazione forzata di CSP. In questo modo viene allineato il comportamento di applicazione dell'applicazione forzata di CSP per gli iframe multiorigine e gli iframe della stessa origine.