Partecipare alla prova dell'origine per accedere allo spazio di archiviazione senza cookie tramite l'API Storage Access

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

Chrome 115 ha introdotto modifiche alle API di archiviazione, ai service worker e alle API di comunicazione mediante il partizionamento in contesti di terze parti. Oltre a essere isolate dal criterio di origine stessa, le API interessate utilizzate nei contesti di terze parti sono isolate anche dal sito del contesto di primo livello.

I siti che non hanno avuto il tempo di implementare il supporto per il partizionamento dello spazio di archiviazione di terze parti possono partecipare a una prova di ritiro per annullare temporaneamente la partizione (mantenere l'isolamento in base al criterio di origine stessa, ma rimuovere l'isolamento in base al sito di primo livello) e ripristinare il comportamento precedente di API di archiviazione, service worker e comunicazione nei contenuti incorporati nel loro sito. Questo periodo di prova di ritiro è impostato per scadere con il rilascio di Chrome 127 il 3 settembre 2024. Tieni presente che questa prova è separata dalla prova relativa al ritiro per l'accesso ai cookie di terze parti: riguarda solo l'accesso allo spazio di archiviazione.

Come soluzione a lungo termine per risolvere determinati casi d'uso interrotti dal partizionamento dello spazio di archiviazione di terze parti non correlato ai cookie, Chrome propone la possibilità per le terze parti di richiedere l'accesso allo spazio di archiviazione/alle comunicazioni (sia con cookie che senza) tramite l'API Accesso allo spazio di archiviazione (disponibile a partire da Chrome 117), che già consente alle terze parti di richiedere l'accesso ai cookie.

A partire da Chrome 120, questa proposta sarà disponibile per la sperimentazione tramite una prova dell'origine. Gli sviluppatori devono partecipare a questa prova dell'origine per valutare in che modo la soluzione proposta risolve i loro casi d'uso e assicurarsi di essere pronti prima del termine della prova di ritiro.

Dettagli della prova dell'origine

A partire da Chrome 120, Chrome supporterà una prova dell'origine, StorageAccessAPIBeyondCookies, per attivare l'estensione proposta dell'API Accesso allo spazio di archiviazione (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.

Meccanica

L'API può essere utilizzata come segue (JavaScript in esecuzione in un iframe incorporato):

// Request a new storage handle via rSA (this should prompt the user)
const handle = await document.requestStorageAccess({all: true});
// Write some 1P context sessionStorage
handle.sessionStorage.setItem('userid', '1234');
// Write some 1P context localStorage
handle.localStorage.setItem('preference', 'A');
// Open or create an indexedDB that is shared with the 1P context
const messageDB = handle.indexedDB.open('messages');
// Use locks shared with the 1P context
await handle.locks.request('example', ...);

Se vuoi solo l'accesso a un'API specifica anziché a all, puoi passare solo i nomi degli handle API di cui hai bisogno. Ad esempio, puoi passare {sessionStorage: true} per ottenere l'accesso solo allo spazio di archiviazione della sessione o {sessionStorage: true} per ottenere l'accesso a IndexedDB e ai blocchi web.{indexedDB: true, locks:true}

Oltre a chiamare questa estensione aggiuntiva, l'accesso allo spazio di archiviazione non dei cookie corrisponderebbe ai requisiti attuali per l'accesso ai cookie tramite l'API Storage Access. Ad esempio, in Chrome non viene visualizzata alcuna richiesta quando le origini si trovano nello stesso insieme di siti web correlati (RWS, il nuovo nome per gli insiemi proprietari). Le origini che non fanno parte della stessa RWS saranno soggette ai requisiti di richiesta dell'API Accesso allo spazio di archiviazione in Chrome.

Durata

La prova dell'origine sarà disponibile da Chrome 120 a Chrome 125 (o dopo il 6 agosto 2024 in qualsiasi traguardo).

Ambito

In Chrome 120 sono disponibili solo DOM Storage (memoria di sessione e locale), Indexed DB e Blocchi web.

Cache Storage, Origin Private File System, Quota, Blob Storage e Broadcast Channel sono stati aggiunti in Chrome 121.

I worker condivisi e il controllo sull'inclusione dei cookie sono stati aggiunti in Chrome 123.

I worker dedicati ereditano l'accesso ai cookie non partizionati se requestStorageAccess è stato chiamato prima della creazione del worker a partire da Chrome 120 (questa operazione non richiede l'utilizzo dell'handle dell'API Accesso allo spazio di archiviazione).

Partecipa

  1. Valuta come utilizzi lo spazio di archiviazione dei cookie e di altro tipo in un contesto di terze parti. I casi d'uso di esempio possono aiutarti a capire se questa proposta può soddisfare le tue esigenze.
  2. Avvia Chrome 120 (o versioni successive) e assicurati che il flag test-third-party-cookie-phaseout sia attivo.
  3. Se vuoi testare la funzionalità localmente senza prima configurare un token di prova dell'origine, puoi attivare #enable-experimental-web-platform-features nel browser.
    1. Al termine dei test locali, puoi registrarti per la prova dell'origine StorageAccessAPIBeyondCookies e ottenere un token per i tuoi domini. Per istruzioni più dettagliate, consulta la pagina Guida introduttiva ai trial delle origini. La guida alla risoluzione dei problemi relativi alle prove dell'origine di Chrome fornisce un elenco di controllo completo per assicurarti che il token sia configurato correttamente.
    2. Incorpora il token di prova dell'origine nell'iframe in cui devi utilizzare l'handle dell'API Accesso allo spazio di archiviazione utilizzando un'intestazione HTTP, un meta tag HTML o programmaticamente. Tieni presente che il token deve essere incorporato da qualsiasi frame che voglia utilizzare questa API. Se lo incorpori nel frame principale, l'API non verrà attivata nei frame secondari.
  4. Chiama document.requestStorageAccess(...) per ottenere l'handle dell'API Storage Access nell'iframe cross-site. Consulta la documentazione dell'API Storage Access per i requisiti per la riuscita di questa chiamata.
  5. Esegui la migrazione dello spazio di archiviazione relativo all'iframe per utilizzare l'handle dell'API Storage Access, se disponibile. Ad esempio, le chiamate a window.sessionStorage.setItem(...) diventano handle.sessionStorage.setItem(...).
  6. Apri il tuo sito web e verifica che l'handle di accesso allo spazio di archiviazione funzioni come previsto.
  7. Per interrompere la partecipazione alla prova dell'origine, rimuovi il token aggiunto nel passaggio 3.
  8. Invia un feedback o segnala eventuali problemi nel repository GitHub dell'API Storage Access per lo spazio di archiviazione non basato su cookie.

Demo: utilizzo dell'API Storage Access per accedere allo spazio di archiviazione locale non partizionato

La seguente demo mostra come accedere ai canali di trasmissione non partizionati da un iframe di terze parti utilizzando l'API Accesso allo spazio di archiviazione:

https://saa-beyond-cookies.glitch.me/

La demo richiede Chrome 121 o versioni successive con il flag test-third-party-cookie-phaseout abilitato.

Risorse aggiuntive