Participer à l'essai d'abandon pour le stockage tiers non partitionné, les service workers et les API de communication

Depuis Chrome 115, le stockage, les service workers et les API de communication sont partitionnés dans des contextes tiers. En plus d'être isolées par la règle d'origine commune, les API concernées utilisées dans des contextes tiers sont également séparé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 d'annuler la partition temporaire (continuer l'isolation par des 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.

En plus d'un essai d'abandon général sans partitionnement, il est possible de participer à un essai d'abandon ciblé uniquement pour window.sessionStorage. Cet essai est disponible, car certains sites doivent migrer leur flux Firebase signInWithRedirect. Pour plus d'informations sur cette migration, consultez cet article.

Essais d'abandon disponibles

À partir de Chrome 115, nous allons ouvrir deux essais avec abandon:

  1. DisableThirdPartyStoragePartitioning : permet à un site de premier niveau d'annuler la partition du contenu tiers intégré à ses pages (supprimer temporairement l'isolation par site de premier niveau) dans le stockage, les service workers et les API de communication.
  2. DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning : permet à un site d'annuler la partition de sessionStorage entre les navigations.

Elles permettront aux sites de détecter et de résoudre les problèmes avant le début du processus de déploiement du partitionnement tiers dans Chrome 115.

Vous trouverez ci-dessous un aperçu de l'évaluation avant arrêt et de ce qui vous attend. Si vous avez des commentaires à partager ou si vous rencontrez des problèmes au cours de cet essai, n'hésitez pas à nous en faire part dans le dépôt GitHub de l'essai d'abandon du stockage partitionné.

DisableThirdPartyStoragePartitioning

Les API suivantes ne seront pas partitionnées dans les contextes tiers si vous enregistrez le site de premier niveau dans la phase d'évaluation avant arrêt de DisableThirdPartyStoragePartitioning : les API de stockage (localStorage, sessionStorage, IndexedDB, Quota, etc.), les API de communication (telles que BroadcastChannel, SharedWorkers et WebLocks) et l'API ServiceWorker.

Exemple :

Diagramme de partitionnement du stockage

Pour une explication plus détaillée, consultez la présentation du projet.

DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning

Si vous vous inscrivez à la phase d'évaluation de DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning et que vous accédez à une origine enregistrée, tous les iFrames intersites de même origine ne sont pas partitionnés uniquement pour Window.sessionStorage et uniquement pendant la durée de vie de cet onglet. Alors que l'essai d'abandon de DisableThirdPartyStoragePartitioning affecte tous les contextes tiers intégrés à l'origine enregistrée, l'essai d'abandon de DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning enregistre à la place une origine donnée pour recevoir un accès non partitionné lorsqu'il est intégré à des contextes tiers.

Exemple :

Schéma de partitionnement du stockage après le paritonnage général

Quel impact pour les développeurs Web ?

Les sites doivent auditer leur utilisation du stockage non partitionné, du service worker et des API de communication dans des contextes tiers et, si nécessaire, se préparer au partitionnement tiers avant l'expiration de ces essais d'abandon. Ces essais d'abandon devraient expirer avec la sortie de Chrome 127 le 3 septembre 2024.

Pour demander au navigateur de dissocier le stockage dans le contenu tiers intégré à ses pages, les sites de premier niveau doivent s'inscrire à l'un des essais d'abandon ou aux deux, et ajouter le ou les jetons d'essai correspondants à leurs en-têtes de réponse HTTP (voir l'exemple détaillé ci-dessous).

Chaque essai avec abandon est disponible sur Windows, Mac, Linux, Chrome OS et Android.

Participer aux essais d'abandon

Vous trouverez ci-dessous un bref aperçu de la manière de participer à l'un des essais d'abandon ou aux deux. Pour obtenir des instructions plus détaillées, consultez Premiers pas avec les phases d'évaluation.

  1. Lancez Chrome 115 (ou une version ultérieure) et assurez-vous que l'option ThirdPartyStoragePartitioning est activée.
  2. Vérifiez que le comportement du contenu tiers intégré à votre site de premier niveau est perturbé par le partitionnement du stockage (sinon, vous n'avez pas besoin de participer aux essais d'abandon).
  3. Inscrivez-vous à l'évaluation avant arrêt et obtenez un jeton pour vos domaines en accédant à la page suivante :
    1. Pour qu'un site de premier niveau dissocie le stockage, les service workers et les API de communication dans son contenu intégré tiers : DisableThirdPartyStoragePartitioning
    2. Pour qu'un site de premier niveau puisse annuler la partition de sessionStorage entre les différentes navigations : DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
  4. Ajoutez un jeton d'évaluation à votre page :
    1. Pour l'essai DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning, vous pouvez ajouter Origin-Trial: <DEPRECATION TRIAL TOKEN> à l'en-tête de réponse HTTP de votre site de premier niveau, où <DEPRECATION TRIAL TOKEN> contient le jeton que vous avez obtenu lors de votre inscription à l'évaluation avant arrêt. Vous pouvez également le faire via HTML ` possédant le même tag réseau.
    2. Pour l'essai DisableThirdPartyStoragePartitioning, le jeton doit être fourni via une balise HTML <meta> injectée via JavaScript. La méthode d'en-tête HTTP n'est pas prise en charge.
  5. Chargez votre site Web dans Chrome 115 (ou version ultérieure) avec ThirdPartyStoragePartitioning toujours activé et vérifiez que tous les problèmes liés au partitionnement ont été correctement résolus.
  6. Pour arrêter de participer à l'évaluation avant arrêt, il vous suffit de supprimer le jeton que vous avez ajouté à l'étape 2.

L'évaluation d'abandon de DisableThirdPartyStoragePartitioning est compatible avec les phases d'évaluation tierces, mais le script tiers injectant le jeton doit être évalué dans le frame de haut niveau avant le chargement de l'iFrame tiers auquel le partitionnement n'est pas appliqué. L'évaluation d'abandon de DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning n'est pas compatible avec les phases d'évaluation tierces, car l'utilisateur inscrit doit être le site de premier niveau à un moment donné de la durée de vie de l'onglet donné. 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é.

Envoyer des commentaires

Veuillez envoyer vos commentaires ou problèmes que vous rencontrez dans le dépôt GitHub de l'essai d'abandon du stockage partitionné.