Chrome 120 beta

Mascheramento CSS, regole meno restrittive per la nidificazione di CSS, crea 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 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 nell'elenco su chromestatus.com. Chrome 120 è in versione beta a partire dal 1° novembre 2023. Puoi scaricare la versione più recente da Google.com per computer oppure dal Google Play Store per Android.

CSS

In questa versione sono state aggiunte sette nuove funzioni CSS.

Sintassi CSS <image> per le proprietà personalizzate registrate

Supporta l'utilizzo della sintassi <image> per le proprietà personalizzate registrate con @property o registerProperty(). La sintassi <image> può essere utilizzata per limitare i valori della proprietà personalizzata a url() valori 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. Inoltre, è possibile utilizzare transizioni e animazioni direttamente in queste proprietà personalizzate registrate.

Query supporti: funzionalità di scripting

La funzionalità degli elementi multimediali di script viene utilizzata per verificare se i linguaggi di scripting, come JavaScript, sono supportati nel documento corrente. Le opzioni valide sono "attivato", "solo iniziale" e "nessuno". Tuttavia, l'opzione "solo iniziale" non corrisponde mai all'interno di un browser.

Selettore di pseudo-classe :dir()

Il selettore di pseudo-classe CSS :dir() associa gli elementi in base alla direzionalità, che è determinata in base all'attributo HTML dir.

: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 è equivalente ai selettori dell'attributo [dir] perché corrisponde alle direzioni ereditate da un predecessore con l'attributo dir e perché corrisponde alla direzione calcolata dall'uso di dir=auto (che determina la direzionalità dal primo carattere del testo con una forte direzionalità).

Funzioni esponenziali CSS

Aggiunge le funzioni esponenziali CSS: pow(), sqrt(), hypot(), log() e exp() dalla specifica Valori CSS e Unità di livello 4.

Mascheramento CSS

Il CSS mask e le proprietà correlate come mask-image e mask-mode vengono utilizzati 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 allinea con la specifica attuale. Sono inclusi mask-image, mask-mode, mask-repeat, mask-position, mask-clip, mask-origin, mask-size e mask-composite, oltre all'abbreviazione mask. I riferimenti mask-image locali sono supportati, la serializzazione ora corrisponde alla specifica e i valori accettati ora corrispondono alla specifica (ad esempio, add invece di source-over per mask-composite).

Nidificazione CSS informale

Questa modifica all'implementazione della nidificazione di CSS consente alle regole di stile nidificate di iniziare con un elemento, ad esempio h1, anziché richiedere il simbolo & in primo piano o essere aggregate tra is(). L'esempio seguente è ora valido nella specifica e funziona in Chrome 120.

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

Pattern ad accordion con l'attributo nome su <details>

Questa funzionalità aggiunge la possibilità di creare accordion utilizzando una sequenza di elementi <details> HTML. Aggiunge un attributo name all'elemento <details>. Quando viene utilizzato questo attributo, più elementi <details> con lo stesso nome formano un gruppo. Può essere aperto al massimo un elemento del gruppo alla volta.

API web

Consenti il trasferimento di ArrayBuffer nei costruttori VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk, ImageDecoder

In questo modo, potrai scollegare i buffer degli array e utilizzare i buffer corrispondenti all'interno di VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk, AudioData senza una copia.

API per il caricamento dei caratteri CSS FontFaceSet: metodo check()

Il metodo check() di FontFaceSet verifica se sia possibile visualizzare il testo utilizzando i caratteri specificati senza tentare di utilizzare i caratteri in FontFaceSet che non hanno completato il caricamento. In questo modo gli utenti possono utilizzare il carattere in modo sicuro senza in seguito attivare la sostituzione del carattere.

Chiudi richieste e ChiudiWatcher

Le richieste di chiusura sono un nuovo concetto che include le richieste degli utenti di chiudere un elemento attualmente aperto utilizzando il tasto Esc su computer oppure il pulsante o il gesto Indietro su Android. L'integrazione in Chrome comporta due modifiche:

  • CloseWatcher, una nuova API per l'ascolto diretto e la risposta alle richieste di chiusura.
  • Esegue l'upgrade a <dialog> e popover="" per utilizzare il nuovo framework di richieste di chiusura, in modo che rispondano 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. Di conseguenza, se un documento ottiene l'accesso allo spazio di archiviazione tramite document.requestStorageAccess() e poi crea un worker dedicato, il worker avrà accesso anche 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 indipendente (RP)) con un provider di identità. In altre parole, dopo che l'utente ha fatto 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 gli sviluppatori di provider di identità che quelli RP possono comprendere meglio l'esperienza utente di accesso e valutare di conseguenza le metriche sul rendimento e sui segmenti.

Scopri di più nel post del blog di FedCM su Chrome 120.

Aggiornamenti alle funzionalità di Fenced Frames

È disponibile un'opzione di formato aggiuntiva per le macro di dimensioni degli annunci Protected Audience nell'API Protected Audience in Privacy Sandbox. Una funzionalità di attivazione consente di utilizzare le macro per specificare la dimensione dell'annuncio che vince l'asta nell'URL dell'annuncio, ad esempio:

https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}

Per garantire una maggiore coerenza con altri tipi di macro in Protected Audience, come quelli utilizzati da deprecatedReplaceInURN e registerAdMacro(), in Chrome 120 aggiungeremo la possibilità di utilizzare ${AD_WIDTH} e ${AD_HEIGHT} come formato per le macro, oltre al formato corrente.

Ora i beacon automatici verranno 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 proprio worklet. D'ora in poi, qualsiasi destinazione che chiama registerAdBeacon() per reserved.top_navigation riceverà un beacon automatico, ma solo le destinazioni specificate in setReportEventDataForAutomaticBeacons() riceveranno dati automatici del beacon insieme al beacon. Il parametro once in setReportEventDataForAutomaticBeacons() determinerà se i dati verranno inviati una sola volta, anziché determinare se l'intero beacon verrà inviato una sola volta.

Margine di scorrimento dell'osservatore dell'intersezione

L'osservatore incrocia scrollMargin consente agli sviluppatori di osservare i target all'interno di contenitori di scorrimento nidificati che al momento vengono ritagliati dai contenitori di scorrimento. Questo si ottiene espandendo il rettangolo di ritaglio del contenitore del scrollMargin durante il calcolo dell'intersezione.

Segnalazioni di violazioni delle norme relative alle autorizzazioni

In questo modo si integra l'API delle norme relative alle autorizzazioni con l'API di reporting. In questo modo gli sviluppatori web possono configurare gli endpoint a cui verranno inviati i report sulle violazioni delle norme relative alle autorizzazioni. In questo modo, i proprietari dei siti possono vedere quando nelle loro pagine sul campo vengono richieste funzionalità non consentite.

Include inoltre l'intestazione Permissions-Policy-Report-Only, che consente di inviare report in base a un criterio proposto (analogo a Content-Security-Policy-Report-Only) in modo che le modifiche ai criteri possano essere valutate per potenziali interruzioni prima di implementarle nella modalità di applicazione standard.

API Media Session: azione enterpictureinpicture

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 una finestra Picture in picture di un documento.

Scopri di più nella pagina Picture in picture automatica per le app web.

Supporto per WebGPU f16

Consente l'uso del tipo a virgola mobile a mezza precisione f16 in WebGPU Shader (WGSL).

Gli sviluppatori possono usare la funzionalità 'shader-f16' della specifica WebGPU e l'estensione 'f16' della specifica WGSL per accedere alle variabili in virgola mobile a 16 bit e alle API nei loro Shader.

MediaCapabilities: invia una query al supporto dell'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 tonale, 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 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 usufruiscono dell'assistenza.

Statistiche MediaStreamTrack (Video)

Un'API che espone i contatori di frame (pubblicati, eliminati, totali) per MediaStreamTracks di tipo video. Le statistiche audio verranno trattate con il lancio di una nuova funzionalità di Chrome.

API Private Aggregation: selezione del coordinatore di 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(). L'approccio ampio si allinea in gran parte con l'approccio dell'API Attribution Reporting.

API Login Status in FedCM

L'API Login Status (in precedenza API Sign-in Status) 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 a tempo silenzioso e, in questo modo, consente a FedCM di operare senza cookie di terze parti.

In futuro questa API potrebbe diventare disponibile per altri casi d'uso.

Scopri di più nel post del blog dell'annuncio.

Visualizza transizioni: rendere il callback non nullo

Al momento, la chiamata startViewTransition accetta un tipo di callback con valore null facoltativo con un valore predefinito nullo: startViewTransition(optional UpdateCallback? callback = null).

Questa funzionalità modifica il tipo in un tipo non null: startViewTransition(optional UpdateCallback callback).

Incapsulamento della chiave X25519Kyber768 per TLS

Proteggi il traffico TLS di Chrome attuale dalla futura crittoanalisi quantistica eseguendo il deployment dell'algoritmo dell'accordo chiave quantico resistente alla quantità Kyber768. Si tratta di un accordo 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 dovrebbe essere trasparente per gli utenti.

Prove dell'origine in corso

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

Intestazione della richiesta HTTP "priorità"

Questa funzionalità aggiunge l'intestazione della richiesta priority per tutte le richieste HTTP con le informazioni sulla priorità della richiesta al momento dell'invio.

RFC 9218 (Extensible Prioritization Scheme for HTTP) definisce un'intestazione della richiesta HTTP "priorità" da utilizzare per la segnalazione della priorità delle richieste alle origini (e agli intermediari). Definisce inoltre i processi di negoziazione e i frame a livello di protocollo per HTTP/2 e HTTP/3 in modo che abbiano le stesse informazioni prioritarie. L'intestazione può indicare 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à successivamente. L'intestazione può operare end-to-end per i server di origine (e fornire un meccanismo affinché l'origine sostituisca la priorità se viene riconosciuta dagli intermediari), mentre i frame sono limitati a operare a livello di link. Questa funzionalità serve in particolare per supportare lo schema di priorità basato su intestazioni.

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 privato alla rete per rilassarsi il contenuto misto

Per stabilire connessioni a dispositivi su una rete locale che non hanno nomi univoci a livello globale e che pertanto non possono ottenere certificati TLS, questa funzionalità introduce una nuova opzione per fetch() per dichiarare l'intenzione di uno sviluppatore di comunicare con un dispositivo di questo tipo, una nuova funzionalità controllata da criteri per limitare l'accesso a ogni sito da parte di ogni sito e nuove intestazioni per la risposta preflight del server per fornire ulteriori metadati.

Registrati alla prova dell'origine del prompt di autorizzazione di accesso alla rete privata.

Accesso senza restrizioni a performance.measureUserAgentSpecificMemory()

performance.measureUserAgentSpecificMemory() è specificato per essere disponibile 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 eseguire il deployment completo di COOP/COEP. Tieni presente che non è possibile utilizzare performance.memory (API legacy) a questo scopo perché non è mai stata abilitata per i worker.

performance.measureUserAgentSpecificMemory()

Questa 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 ritiri

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

Questa release di Chrome ritira una funzionalità.

Deprecazione e rimozione del supporto di Theora

Chrome ritirerà e rimuoverà il supporto per il codec video Theora nella versione desktop di Chrome a causa di rischi emergenti per la sicurezza. Il basso (e ora spesso non corretto) utilizzo di Theora non giustifica più il supporto per la maggior parte degli utenti.

In questa release di Chrome vengono rimosse due funzionalità.

Rimuovi dati: URL in SVGUseElement

Assegnazione di un dati: l'URL in SVGUseElement può causare XSS. Questo ha comportato anche l'esclusione di TrustedType. 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. Questo allinea il comportamento dell'applicazione dell'applicazione forzata di CSP incorporata per iframe multiorigine e iframe della stessa origine.