Chrome 108 beta

Nuove unità dell'area visibile CSS, API Federated Credential Management, caratteri COLRv1 variabili e altro.

Se non diversamente indicato, le modifiche descritte di seguito 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 dall'elenco su ChromeStatus.com. Chrome 108 è in versione beta a partire dal 27 ottobre 2022. Puoi scaricare la versione più recente da Google.com per computer oppure dal Google Play Store per Android.

CSS

Chrome 108 include una serie di nuove funzionalità CSS.

Overflow CSS per gli elementi sostituiti

Chrome inizierà a implementare una modifica che consente agli sviluppatori di usare la proprietà overflow esistente con elementi sostituiti che appaiono all'esterno della casella dei contenuti. Se abbinato a object-view-box, puoi creare un'immagine con un'ombra o un bagliore personalizzati applicati, con un comportamento di overflow del segno di inchiostro adeguato, come l'ombra di un CSS.

Si tratta di una potenziale modifica che provoca un errore. Per saperne di più, consulta Una modifica all'overflow degli elementi sostituiti.

Unità area visibile piccola, grande, dinamica e logica

In questo modo, sono supportate le unità piccole (svw, svh, svi, svb, svmin, svmax), grandi (lvw, lvh, lvi, lvb, lvmin, lvmax), dinamiche (dvw, dvh, dvi, dvb, dvmin, dvmax) e logiche (vi, vb).

Assistenza CSS break-after, break-before e break-inside

Supporto del valore di evitare le proprietà di frammentazione CSS break-before, break-after e break-inside durante la stampa. Questo valore indica al browser di evitare interruzioni prima, dopo o all'interno dell'elemento a cui viene applicato. Ad esempio, il seguente CSS evita che una figura venga interrotta durante un'interruzione di pagina.

figure {
    break-inside: avoid;
}

Questa funzionalità è stata aggiunta perché Chrome 108 ha aggiunto il supporto della stampa LayoutNG.

Ultimo allineamento elemento di riferimento

Questa funzionalità consente agli sviluppatori di allineare gli elementi nel layout flessibile o a griglia in base all'ultima base di riferimento, anziché alla prima. Questa operazione viene eseguita tramite le seguenti proprietà:

  • align-items: last baseline;
  • justify-items: last baseline;
  • align-self: last baseline;
  • justify-self: last baseline;

ContentVisibilityAutoStateChanged evento

Un evento che si attiva su un elemento con content-visibility: auto quando lo stato di rendering dell'elemento cambia a causa di uno qualsiasi degli attributi che rendono l'elemento pertinente per l'utente.

Il caso d'uso è consentire agli sviluppatori di avere un maggiore controllo su quando interrompere o avviare il rendering in risposta all'interruzione o all'avvio del rendering da parte dello user agent del sottoalbero secondario di visibilità dei contenuti. Ad esempio, lo sviluppatore potrebbe voler interrompere gli aggiornamenti di React in una struttura ad albero secondaria che non viene visualizzata dallo user agent. Analogamente, lo sviluppatore potrebbe voler interrompere qualsiasi altro aggiornamento dello script (ad esempio, gli aggiornamenti del canvas) quando lo user agent non esegue il rendering dell'elemento.

API web

Gestione delle credenziali federate (era WebID)

L'API Federated Credential Management consente agli utenti di utilizzare la propria identità federata per accedere ai siti web in modo compatibile con i miglioramenti della privacy del browser.

Estensioni origine multimediale nei worker

Consente l'utilizzo dell'API Media Source Extensions (MSE) da contesti DedicatedWorker per migliorare le prestazioni del buffering dei contenuti multimediali per la riproduzione da parte di un HTMLMediaElement nel contesto principale di Window. Creando un oggetto MediaSource in un contesto DedicatedWorker, un'applicazione può ottenere da quest'ultimo un MediaSourceHandle e trasferirlo nel thread principale da utilizzare per il collegamento a un HTMLMediaElement. Il contesto che ha creato l'oggetto MediaSource potrebbe utilizzarlo per eseguire il buffer dei contenuti multimediali.

Sec-CH-Prefers-Reduced-Motion Intestazione dei client hint per le funzionalità multimediali delle preferenze degli utenti

Le intestazioni dei client hint delle funzionalità multimediali preferenze dell'utente definiscono un insieme di intestazioni dei client hint HTTP relativi alle funzionalità multimediali delle preferenze dell'utente, come definito dal livello 5 delle query multimediali. Se utilizzate come suggerimenti critici client, queste intestazioni consentono ai server di fare scelte intelligenti riguardo, ad esempio, all'incorporamento CSS. Sec-CH-Prefers-Reduced-Motion riflette la preferenza dell'utente (prefers-reduced-motion).

Lettori BYOB di WebTransport

Supporta i lettori BYOB(bring-your-own-buffer) per WebTransport per consentire la lettura in un buffer fornito dallo sviluppatore. I lettori BYOB possono ridurre al minimo le copie nel buffer e l'allocazione della memoria.

Caratteri jolly nelle origini dei criteri relativi alle autorizzazioni

La specifica dei criteri relativi alle autorizzazioni definisce un meccanismo che consente agli sviluppatori di abilitare e disabilitare in modo selettivo l'utilizzo di varie funzionalità e API del browser. Una funzionalità di questo meccanismo consente di abilitare le funzionalità solo su origini esplicitamente enumerate (ad esempio, https://foo.com/). Questo meccanismo non è abbastanza flessibile per la progettazione di alcune CDN, che forniscono contenuti tramite un'origine che potrebbe essere ospitata su una delle diverse centinaia di sottodomini possibili.

Di conseguenza, questa funzionalità aggiunge il supporto per i caratteri jolly nel criterio delle autorizzazioni strutturato come SCHEME://*.HOST:PORT (ad esempio https://*.foo.com/), in cui è possibile creare un'origine valida da SCHEME://HOST:PORT (ad esempio https://foo.com/). Ciò richiede che HOST sia un dominio registrabile. Questo significa che https://*.bar.foo.com/ funziona, ma https://*.com/ no (se vuoi consentire a tutti i domini di utilizzare la funzionalità, devi delegare a *).

Metodi di sincronizzazione per AccessHandles nell'API File System Access

Aggiorna i metodi asincroni flush(), getSize() e truncate() in FileSystemSyncAccessHandle nell'API File System Access a metodi sincroni. Attualmente FileSystemSyncAccessHandle offre una combinazione di metodi di sincronizzazione e asincroni, che ostacolano le prestazioni e l'usabilità, in particolare per le applicazioni che portano C/C++ a Wasm. Questo aggiornamento offrirà coerenza nell'utilizzo dell'API e migliorerà le prestazioni delle librerie basate su Wasm.

Questa è una potenziale modifica che provoca un errore. Per saperne di più, consulta l'articolo Modifiche che provocano l'interruzione: metodi di sincronizzazione per AccessHandles.

Interfaccia utente condizionale WebAuthn

L'interfaccia utente condizionale per WebAuthn è supportata su Windows 22H2 o versioni successive, macOS e Android P o versioni successive. È stata aggiornata anche l'interfaccia utente WebAuthn sulle piattaforme desktop.

Caratteri COLRv1 variabili e rilevamento delle funzionalità dei caratteri

Supporto dei caratteri variabili COLRv1

I caratteri vettoriali di colore COLRv1 sono supportati sin da Chrome 98, ma questa versione iniziale supportava solo le funzionalità statiche della tabella COLRv1. La specifica COLRv1 definisce l'integrazione con OpenType Variations che consente di modificare le proprietà dei caratteri dei gradienti e delle trasformazioni mediante la modifica dei parametri dell'asse variabile. Questo secondo passaggio introduce il supporto di tali variazioni in COLRv1.

Estensioni condizione font-tech() e font-format() al CSS @supports

L'utilizzo di font-tech() e font-format() insieme a CSS @supports consente il rilevamento della tecnologia dei caratteri e del supporto dei formati, nonché il miglioramento progressivo dei contenuti. L'esempio seguente verifica il supporto dei caratteri ColRv1.

@supports font-tech(color-COLRv1) {

}

Supporto della funzione tech() nel descrittore @font-face src:

Il livello 4 dei caratteri CSS fornisce metodi aggiuntivi per selezionare o filtrare le risorse dei caratteri. È stata introdotta la funzione tech(), che consente di trasferire un elenco di tecnologie di caratteri necessarie per il funzionamento di questo rispettivo blob. In base a ciò, lo user agent selezionerà la prima risorsa adatta.

Chrome su Android

Android OSK ora ridimensiona l'area visibile per impostazione predefinita

La tastiera sullo schermo Android ridimensiona l'area visibile per impostazione predefinita anziché il blocco contenitore iniziale. Gli autori possono disattivare questa funzionalità utilizzando la nuova chiave meta-viewport interactive-widget.

Prove dell'origine

Questa release di Chrome ha due nuove prove delle origini.

Identità del commerciante nell'evento canmakepayment

L'evento del service worker canmakepayment consente al commerciante di sapere se l'utente ha registrato una carta in un'app di pagamento installata. Trasmette automaticamente a un service worker l'origine e i dati arbitrari del commerciante dall'origine dell'app di pagamento. Questa comunicazione multiorigine si verifica durante la creazione di PaymentRequest in JavaScript, non richiede un gesto dell'utente e non mostra alcuna interfaccia utente. La prova per gli sviluppatori per la rimozione dei campi di identità dall'evento "canmakepayment" può essere attivata tramite: chrome://flags/#clear-identity-in-can-make-payment. L'attivazione di questo flag svuota i campi di identità nell'evento "canmakepayment" (e nell'intent IS_READY_TO_PAY per Android).

Per saperne di più, consulta l'articolo Aggiornamento del comportamento dell'evento CanMakePayment dell'API Payment Handler.

API NotresetdReason della cache back-forward

L'API NotRipristinadReason riporta l'elenco dei motivi per cui una pagina non viene pubblicata da BFcache in una struttura ad albero dei frame, tramite l'API Performance NavigationTiming.

Le pagine possono essere bloccate dalla cache BF per diversi motivi, ad esempio quelli richiesti dalla specifica e quelli specifici dell'implementazione del browser. Gli sviluppatori possono raccogliere la percentuale di hit di BFCache sul proprio sito utilizzando il parametro persistente del gestore pageshow e PerformanceNavigationTiming.type(back-forward). Questa API consente ai siti di raccogliere informazioni sul motivo per cui BFCache non viene utilizzato in una navigazione nella cronologia, in modo da poter intraprendere azioni su ciascun motivo e rendere la propria pagina compatibile con BFCache.

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.

Deprecazioni

Questa release di Chrome ritira una funzionalità.

Ritira e rimuovi window.defaultStatus e window.defaultstatus

Si tratta di API non standard che non vengono implementate da tutti i browser e non hanno alcun effetto sul comportamento del browser. In questo modo vengono eliminati e viene rimosso un potenziale segnale di fingerprinting.

Originariamente erano utilizzati per modificare/controllare il testo della "barra di stato" nella parte inferiore delle finestre del browser. Tuttavia, non hanno mai avuto alcun effetto effettivo sulla barra di stato di Chrome e non sono attributi standardizzati. Gecko non supporta questi attributi dalla versione 23; WebKit supporta ancora questi attributi. L'attributo window.status correlato è standardizzato, ma non deve mai avere alcun impatto sulla barra di stato della finestra.

Rimozioni

In questa release di Chrome vengono rimosse quattro funzionalità.

Rimuovi ImageDecoderInit.premultiplyAlpha

La funzionalità non ha effetti osservabili nei casi d'uso principali, ma potrebbe limitare le implementazioni in modi non ottimali. Consulta questo problema per una descrizione più dettagliata. In base al consenso degli editor delle specifiche WebCodecs e alla mancanza di utilizzo (0,000000339% - 0,00000687% dei caricamenti delle pagine per contatore di utilizzo in M106).

Rimuovi navigateEvent.restoreScroll()

restoreScroll() viene sostituito da navigateEvent.scroll(). scroll() funziona in modo identico, tranne per il fatto che consente allo sviluppatore di controllare il tempo di scorrimento per le navigazioni non attraversate (scroll() funziona quando lo scorrimento non è un ripristino, quindi il nome cambia insieme alla modifica del comportamento).

Rimuovi navigateEvent.transitionWhile()

transitionWhile() viene sostituito da navigateEvent.intercept() a causa di difetti di progettazione segnalati dagli sviluppatori. intercetta() si comporta quasi allo stesso modo della funzione di transumanza Mentre(), ma invece di utilizzare un parametro obbligatorio Promise, utilizza una funzione di gestore facoltativa che restituisce una promessa. In questo modo il browser può controllare l'esecuzione del gestore, operazione più successiva e più intuitiva rispetto a transitionWhile().

Rimuovi googIPv6 di WebRTC mediaConstraint

"googIPv6: false" può essere utilizzato per disattivare il supporto IPv6 in WebRTC, come nell'esempio che segue.

new RTCPeerConnection({}, {mandatory:{googIPv6:false}});

IPv6 è attivo per impostazione predefinita da molti anni e non dovremmo essere in grado di disattivarlo. Questa è un'API legacy che non esiste nella specifica.