Participer à la phase d'évaluation pour accéder au stockage sans cookie via l'API Storage Access

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

Chrome 115 a apporté des modifications au stockage, aux service workers et aux API de communication par partitionnement dans des contextes tiers. En plus d'être isolées par les règles de même origine, les API concernées utilisées dans des contextes tiers sont également isolées par le site du contexte de premier niveau.

Les sites qui n'ont pas eu le temps de mettre en œuvre la compatibilité avec le partitionnement du stockage tiers peuvent participer à un essai d'abandon afin de supprimer temporairement la partition (continuer l'isolement selon les règles de même origine, mais supprimer l'isolation par site de premier niveau) et restaurer le comportement antérieur du stockage, des service workers et des API de communication dans le contenu intégré à leur site. Cet essai expire avec la sortie de Chrome 127, qui est prévue pour le 3 septembre 2024. Notez que cette évaluation est distincte de l'évaluation avant arrêt des cookies tiers: elle ne sert que pour l'accès au stockage.

Afin de résoudre à long terme certains cas d'utilisation perturbés par le partitionnement du stockage tiers sans cookie, Chrome propose de permettre à des tiers de demander l'accès au stockage ou à la communication (cookies et non-cookies) via l'API Storage Access (livraison depuis Chrome 117), qui permet déjà à des tiers de demander l'accès aux cookies.

À partir de Chrome 120, cette proposition pourra être testée lors d'une phase d'évaluation. Les développeurs doivent participer à cette phase d'évaluation pour évaluer la façon dont la solution proposée répond à leurs cas d'utilisation et s'assurer qu'ils sont prêts avant la fin de la phase d'évaluation.

Informations sur la phase d'évaluation

À partir de Chrome 120, Chrome prendra en charge une phase d'évaluation, StorageAccessAPIBeyondCookies, pour activer l'extension proposée de l'API Storage Access (rétrocompatible) afin d'autoriser l'accès au stockage non partitionné (cookie ou non) dans un contexte tiers.

Mécanique

Vous pouvez utiliser l'API comme suit (JavaScript exécuté dans un iFrame intégré):

// 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', ...);

Si vous souhaitez accéder à une API spécifique plutôt qu'à all, vous pouvez ne transmettre que les noms des identifiants d'API dont vous avez besoin. Par exemple, vous pouvez transmettre {sessionStorage: true} pour n'accéder qu'à l'espace de stockage de session, ou {indexedDB: true, locks:true} pour accéder à IndexedDB et Web Locks.

Outre l'appel à cette extension supplémentaire, l'accès à un espace de stockage non dédié aux cookies répondrait aux exigences actuelles concernant l'accès aux cookies via l'API Storage Access. Par exemple, dans Chrome, aucune invite ne s'affiche lorsque les origines se trouvent dans le même Ensemble de sites Web associés (RWS, le nouveau nom des Ensembles internes). Les origines qui ne font pas partie du même RWS sont soumises aux exigences de l'API Storage Access dans Chrome.

Durée

La phase d'évaluation sera disponible de Chrome 120 à Chrome 125 (ou après le 6 août 2024 pour n'importe quelle étape).

Définition du champ d'application

Seuls le stockage DOM (stockage local et de session), les bases de données indexées et les verrous Web sont disponibles dans Chrome 120.

Le stockage du cache, le système de fichiers privé d'origine, les quotas, le stockage de blobs et Broadcast Channel ont été ajoutés à Chrome 121.

Les collaborateurs partagés et le contrôle de l'inclusion des cookies ont été ajoutés dans Chrome 123.

Les nœuds de calcul dédiés héritent de l'accès aux cookies non partitionnés si requestStorageAccess a été appelé avant la création du nœud de calcul à partir de Chrome 120 (il n'est pas nécessaire d'utiliser le handle de l'API Storage Access).

Participer

  1. Évaluez la manière dont vous utilisez le stockage des cookies et des autres cookies dans un contexte tiers. Ces exemples d'utilisation peuvent vous aider à déterminer si cette proposition peut répondre à vos besoins.
  2. Lancez Chrome 120 (ou une version ultérieure) et assurez-vous que l'indicateur test-third-party-cookie-phaseout est activé.
  3. Si vous souhaitez tester la fonctionnalité en local sans configurer au préalable de jeton d'évaluation, vous pouvez activer #enable-experimental-web-platform-features dans votre navigateur.
    1. Une fois les tests en local terminés, vous pouvez register à la phase d'évaluation StorageAccessAPIBeyondCookies et obtenir un jeton pour vos domaines. Pour obtenir des instructions plus détaillées, consultez Premiers pas avec les phases d'évaluation. Le guide de dépannage des phases d'évaluation de Chrome fournit une checklist complète pour vous assurer que votre jeton est correctement configuré.
    2. Intégrez ce jeton dans l'iFrame dont vous devrez utiliser le handle de l'API Storage Access, à l'aide d'un en-tête HTTP, d'une balise Meta HTML ou par programmation. Notez que le jeton doit être intégré par tout frame qui souhaite utiliser cette API. L'intégration dans le frame parent n'activera pas l'API dans les frames enfants.
  4. Appelez document.requestStorageAccess(...) pour obtenir le handle de l'API Storage Access dans l'iFrame intersite. Consultez la documentation de l'API Storage Access pour connaître les conditions requises pour que cet appel aboutisse.
  5. Migrez l'espace de stockage associé dans votre iFrame pour utiliser le handle de l'API Storage Access, s'il est disponible. Par exemple, les appels à window.sessionStorage.setItem(...) deviennent handle.sessionStorage.setItem(...).
  6. Ouvrez votre site Web et vérifiez que l'identifiant d'accès au stockage fonctionne comme prévu.
  7. Pour arrêter de participer à la phase d'évaluation, supprimez le jeton que vous avez ajouté à l'étape 3.
  8. Envoyez vos commentaires ou signalez les problèmes que vous rencontrez dans le dépôt GitHub de l'API Storage Access sans cookies.

Démonstration: Utiliser l'API Storage Access pour accéder au stockage local non partitionné

La démonstration suivante montre comment accéder aux chaînes de diffusion non partitionnées à partir d'un iFrame tiers à l'aide de l'API Storage Access:

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

La démonstration nécessite Chrome 121 ou une version ultérieure, avec l'indicateur test-third-party-cookie-phaseout activé.

Ressources supplémentaires