Chrome 123 beta

Se non diversamente specificato, le seguenti modifiche 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 nell'elenco su ChromeStatus.com. Chrome 123 è in versione beta a partire dal 21 febbraio 2024. Puoi scaricare la versione più recente da Google.com per computer o dal Google Play Store su Android.

CSS

In questa release sono state aggiunte cinque nuove funzionalità CSS.

Funzione colore light-dark() CSS

La funzione light-dark() in CSS consente agli sviluppatori di adattare più facilmente lo schema cromatico alle preferenze dell'utente per la modalità Luce o Buio.

Utilizza light-dark() per specificare due diversi valori di colore all'interno di una singola proprietà CSS. Il browser (o il dispositivo) sceglierà automaticamente il colore appropriato in base al valore color-scheme calcolato dell'elemento. Ad esempio, con il seguente CSS:

  • Se l'utente ha selezionato un tema chiaro, l'elemento .target avrà uno sfondo color lime.
  • Se l'utente ha selezionato un tema scuro, l'elemento .target avrà uno sfondo verde.
html {
  color-scheme: light dark;
}
.target {
    background-color: light-dark(lime, green);
}

Modalità di visualizzazione Picture in picture del CSS

Aggiunge il supporto alla funzionalità multimediale display-mode CSS per il valore picture-in-picture. Ciò consente agli sviluppatori web di scrivere regole CSS specifiche che vengono applicate solo quando l'app web è mostrata in modalità Picture in picture.

Scopri di più su questa funzionalità multimediale nella documentazione relativa a Picture in picture.

proprietà CSS allinea-content per i blocchi

La proprietà CSS align-content è ora supportata nei contenitori a blocchi e nelle celle delle tabelle. In precedenza, questa proprietà era supportata solo per gli elementi griglia e flessibili. Ad esempio, ora è possibile allineare display: block, display: list-item e display: table-cell utilizzando align-content.

Scopri di più in Supporto per align-content nei layout a blocchi e tabelle.

La proprietà CSS field-sizing

Utilizzando la proprietà field-sizing, gli sviluppatori possono disattivare le dimensioni predefinite fisse dei controlli dei moduli e rendere le loro dimensioni dipendenti dai contenuti. Consente di creare campi di testo con crescita automatica.

La proprietà text-spacing-trim CSS

Questa proprietà applica la crenatura ai caratteri di punteggiatura di cinese, giapponese e coreano (CJK) per produrre una tipografia visivamente piacevole come definito da JLREQ (Requisiti per il layout di testo giapponese) e CLREQ (Requisiti per il layout di testo cinese).

Molti caratteri di punteggiatura CJK includono spaziatura interna glifo. Ad esempio, il punto e la parentesi chiusa CJK di solito hanno spaziali interni al glifo nella metà destra degli spazi glifi, per dare loro un avanzamento costante rispetto agli altri caratteri ideografici. Tuttavia, quando vengono visualizzati in una riga, gli spazi interni glifo diventano eccessivi. Questa funzionalità regola la spaziatura eccessiva.

La proprietà text-spacing-trim accetta uno dei seguenti quattro valori: normal, trim-start, space-all e space-first. Per saperne di più, consulta Introduzione a quattro nuove funzionalità internazionali in CSS.

API web

Consenti la creazione di credenziali WebAuthn in un iframe multiorigine

Questa funzionalità consente agli sviluppatori web di creare credenziali WebAuthn (ovvero credenziali "publickey", note come passkey) negli iframe multiorigine. Per questa nuova funzionalità sono necessarie due condizioni:

  • L'iframe ha un criterio di autorizzazione publickey-credentials-create-feature.
  • L'iframe ha un'attivazione temporanea dell'utente.

Ciò consentirà agli sviluppatori di creare passkey in scenari incorporati, ad esempio dopo un flusso di incremento dell'identità in cui la parte coinvolta fornisce un'esperienza di identità federata.

Pacchetto di funzionalità dei report sull'attribuzione

Chrome 123 aggiunge filtri per la personalizzazione dei dati dei trigger e il valore aggregabile all'API Attribution Reporting, incentrata su:

  • Configurabilità aggiuntiva dell'API per il reporting a livello di evento supportando la personalizzazione per la cardinalità e i valori dei dati del trigger.
  • Configurabilità aggiuntiva dell'API per i report di riepilogo supportando i filtri nei valori aggregati.

Misurazione dell'attribuzione cross-app e web

Estende l'API Attribution Reporting per consentire l'attribuzione delle conversioni che si verificano sul web a eventi che si verificano al di fuori del browser, all'interno di altre applicazioni.

La proposta sfrutta il supporto a livello di sistema operativo per l'attribuzione. In particolare, offre allo sviluppatore la possibilità di unire gli eventi sul web mobile agli eventi in Privacy Sandbox di Android, sebbene sia possibile implementare il supporto anche per altre piattaforme.

blocking=render sugli script di moduli incorporati

Si tratta di una piccola modifica che rimuove una limitazione artificiale da <script blocking="render">. Prima di questa modifica, <script blocking="render"type="module"> richiede un attributo src, anche se questo src è un URI di dati. Questo è un vincolo non necessario, poiché gli script di moduli incorporati che importano altri script dovrebbero comunque essere in grado di eseguire il rendering-block.

Il motivo è che le transizioni delle visualizzazioni tra documenti si basano spesso su script di blocco della visualizzazione per la personalizzazione, quindi rendere gli script di blocco della visualizzazione più facili da creare supporta questa funzionalità.

Documento Picture in picture: consenti all'API focus() di mettere a fuoco l'elemento di apertura

Ora puoi utilizzare opener.focus() da una finestra Picture in picture del documento per impostare lo stato attivo a livello di sistema nella scheda proprietaria della finestra Picture in picture del documento.

In questo modo gli sviluppatori possono ripristinare la scheda originale in primo piano quando necessario. Ad esempio, quando l'utente deve accedere a un'esperienza UI che non rientra nella finestra Picture in picture più piccola.

Importa la sintassi degli attributi with

Gli attributi di importazione sono una funzionalità JavaScript che consente di annotare le dichiarazioni di importazione, ad esempio import xxx from "mod" with { type: "json" }. Inizialmente, Chrome ha inviato una versione precedente della proposta (in Chrome 91) utilizzando assert come parola chiave. Questa versione è stata quindi aggiornata in modo da utilizzare with a causa di alcune modifiche necessarie durante l'integrazione con l'HTML per i moduli JSON e CSS.

jitterBufferTarget

L'attributo jitterBufferTarget consente alle applicazioni di specificare una durata target in millisecondi del contenuto multimediale per il jitter buffer RTCRtpReceiver. Questo influenza la quantità di buffering effettuato dallo user agent, che a sua volta influisce sulle ritrasmissioni e sul ripristino della perdita di pacchetti. L'alterazione del valore target consente alle applicazioni di controllare il compromesso tra il ritardo di playout e il rischio di esaurire i frame audio o video a causa del tremolio della rete.

Tempistiche dell'animazione lunga

L'API Long Animation Frames è un'estensione dell'API Long Tasks. Misura l'attività insieme al successivo aggiornamento del rendering, aggiungendo informazioni come script a lunga esecuzione, tempo di rendering e tempo speso in layout e stile forzati, noti come thrashing del layout.

Gli sviluppatori possono usare questa funzionalità come diagnostica della "lentezza", che viene misurata tramite INP, individuando le cause della congestione del thread principale, che spesso è la causa di un errore INP.

L'interfaccia NavigationActivation aggiunge navigation.activation. Archivia lo stato relativo alla data di attivazione del documento corrente (ad esempio, quando è stato inizializzato o ripristinato dalla cache back-forward).

Ciò significa che gli sviluppatori possono offrire pagine personalizzate in base alla località da cui l'utente ha visitato il sito. Ad esempio, esegui un'animazione diversa se proviene dalla home page.

evento di rivelazione di pagina

L'evento pagereveal viene attivato sull'oggetto della finestra di un documento alla prima opportunità di rendering dopo che il documento è stato caricato inizialmente, ripristinato dalla cache back-forward o attivato da un prerendering.

Può essere utilizzata dall'autore di una pagina per configurare un'esperienza di inserimento di pagine, ad esempio la transizione di una visualizzazione da uno stato precedente.

PointerEvent.deviceId per la scrittura a mano libera multipenna

Poiché i dispositivi con funzionalità avanzate di input penna stanno diventando sempre più prevalenti, è importante che la piattaforma web continui a evolversi per supportare completamente queste funzionalità avanzate al fine di offrire esperienze ricche sia agli utenti finali che agli sviluppatori. Uno di questi progressi è la capacità del digitalizzatore di un dispositivo di riconoscere più di un dispositivo penna che interagisce con esso contemporaneamente. Questa funzionalità è un'estensione dell'interfaccia PointerEvent che include un nuovo attributo, deviceId, che rappresenta un identificatore univoco permanente per la sessione, un documento isolato che uno sviluppatore può utilizzare in modo affidabile per identificare i singoli pennini che interagiscono con la pagina.

Controlli dell'accesso alla rete privata per le richieste di navigazione: modalità di solo avviso

Prima che il sito web A passi a un altro sito B nella rete privata dell'utente, questa funzionalità effettua le seguenti operazioni:

  1. Controlla se la richiesta è stata avviata da un contesto sicuro.
  2. Invia una richiesta preflight e controlla se B risponde con un'intestazione che consente l'accesso alla rete privata.

Esistono già funzionalità per le risorse secondarie e i worker, ma questa aggiunta è specifica per le richieste di navigazione.

Questi controlli vengono effettuati per proteggere la rete privata dell'utente. Poiché questa funzionalità è in modalità di solo avviso, le richieste non andranno a buon fine se uno o più dei controlli non va a buon fine. In DevTools verrà mostrato un avviso per aiutare gli sviluppatori a prepararsi per l'applicazione prevista.

Suggerimento client Sec-CH-UA-Fattore di forma

Questo suggerimento indica il "fattore di forma" dello user agent o del dispositivo, in modo che il sito possa personalizzare la risposta.

API Service Worker Static Routing

Questa API consente agli sviluppatori di configurare il routing e di trasferire le semplici operazioni dei Service worker. Se la condizione corrisponde, la navigazione avviene senza avviare i service worker o senza eseguire JavaScript, il che consente alle pagine web di evitare penalità delle prestazioni dovute alle intercettazioni dei service worker. Per ulteriori informazioni, consulta il post del blog precedente su questa API.

Aggiornamento dello spazio di archiviazione condiviso

Questo aggiornamento supporta l'esecuzione di worklet tra origini senza dover creare un iframe.

codifica dei contenuti zstd

Zstandard, o zstd, è un meccanismo di compressione dei dati descritto in RFC8878. È un rapido algoritmo di compressione senza perdita di dati, che ha come target scenari di compressione in tempo reale a livello di zlib e con rapporti di compressione migliori. Il token zstd è stato aggiunto come token di codifica dei contenuti registrato da IANA.

L'aggiunta del supporto per zstd come codifica dei contenuti contribuirà a caricare le pagine più velocemente, a utilizzare meno larghezza di banda, a dedicare meno tempo, CPU e potenza alla compressione sui nostri server, con conseguente riduzione dei costi del server.

Nuove prove dell'origine

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

WebAssembly Promessa di integrazione con JavaScript

Per supportare le applicazioni adattabili scritte utilizzando WebAssembly, è necessario fornire funzionalità che consentano la sospensione e il ripristino dei programmi WebAssembly.

Il principale caso d'uso iniziale per promettere l'integrazione è consentire ai programmi WebAssembly la cui origine si basa su API sincrone di utilizzare API asincrone, sempre più comuni sulla piattaforma web.

Registrati alla prova dell'origine dell'integrazione della promessa.

Rimozioni

Chrome 123 rimuove la funzionalità che segue.

Alias window-placement per il criterio di autorizzazione e autorizzazione window-management

In Chrome 111, è stato aggiunto window-management come alias per le stringhe dei criteri di autorizzazione e di autorizzazione window-placement. Questa operazione faceva parte di uno sforzo più ampio per rinominare le stringhe, ritirando e rimuovendo window-placement. La modifica terminologica aumenta la longevità del descrittore man mano che l'API Window Management si evolve nel tempo.

Gli avvisi sul ritiro dell'alias window-placement sono iniziati in Chrome 113 e ora verrà rimosso.