Date de publication : 10 novembre 2026
Les applications Web modernes dépendent souvent d'assets volumineux, tels que des frameworks JavaScript, des moteurs de jeu et des modèles d'IA. Même si les sites utilisent des éléments identiques, chacun doit télécharger et stocker sa propre copie de chaque élément.
Avec l'API Cross-Origin Storage (COS), le client spécifie le contenu qu'il recherche par son hachage et le récupère à partir de n'importe quelle URL pour le partager sur les sites désignés (ou tous les sites). Cela signifie qu'une ressource exacte et connue peut être partagée entre plusieurs sites, indépendamment de la diffusion de l'élément. Cette proposition présente des avantages en termes de sécurité, mais aussi des défis.
Cas d'utilisation
Nous avons longuement parlé de l'importance de la mise en cache des modèles et de la mise en cache de n'importe quel asset avec l'API Cache Storage. L'API Storage interorigine va encore plus loin et peut être utile lorsque plusieurs sites Web associés (ou non) ont besoin d'accéder à la même ressource :
- Modèles d'IA : les modèles tels que Gemma ou les variantes de Llama pèsent entre un gigaoctet et plusieurs dizaines de gigaoctets. Le stockage et la récupération d'une copie via COS évitent les téléchargements massifs de doublons. C'est l'une des principales motivations de la proposition.
- Modules Wasm : les frameworks tels que Flutter envoient des fichiers Wasm qui sont demandés des millions de fois par jour sur des milliers d'origines distinctes, toujours identiques au niveau des octets.
- Bibliothèques et frameworks JavaScript populaires : le regroupement du code du fournisseur séparément et dans son intégralité (comme la bibliothèque React complète, sans treeshaking) permet à plusieurs applications de partager une copie mise en cache via COS.
- Moteurs de jeu : les jeux par navigateur créés sur des moteurs comme Godot ou Unity peuvent partager l'environnement d'exécution du moteur via COS et ne récupérer que les éléments spécifiques au jeu sur le réseau. Les portails de jeux qui hébergent de nombreux jeux grand public provenant de différentes sources ou d'iframes sont ceux qui en bénéficient le plus.
- Polices Web volumineuses : les polices d'icônes, les polices d'emoji et les polices avec une large couverture Unicode sont téléchargées sur un très grand nombre de pages. Leur partage une seule fois via COS contribue à la fois aux performances et à la durabilité.
Le flux de base pour travailler avec COS
L'API COS introduit une méthode navigator.crossOriginStorage.getFileHandle() qui permet aux applications Web de stocker et de récupérer des fichiers au-delà des limites d'origine, identifiés par un hachage cryptographique. Le document explicatif contient un exemple qui montre le flux de base de l'utilisation de l'API.
Essayer aujourd'hui
Vous pouvez tester COS de deux manières dès maintenant :
- Installez une extension de navigateur depuis le Chrome Web Store, les modules complémentaires Firefox ou le magasin d'applications Safari pour polyfiller la surface de l'API et toutes les intégrations. Vous pouvez tester le flux d'API dans n'importe quel navigateur. Vous pouvez également charger l'extension décompressée à partir de son code source.
- Test dans Chromium : une implémentation expérimentale de Chromium est disponible. Téléchargez-le pour macOS sur Apple Silicon ou Linux x86_64 depuis goo.gle/cos-chromium, puis ouvrez
about://flags, recherchez "Stockage interorigine", définissez-le sur Activé et redémarrez lorsque vous y êtes invité. Cette version inclut une intégration des outils de développement : recherchez Stockage interorigine dans l'onglet Application.
Intérêt pour l'écosystème
La proposition COS en est à ses débuts, et un certain nombre de projets proposent déjà une compatibilité expérimentale, généralement derrière un flag d'activation et sous forme d'amélioration progressive :
- Emscripten partage la sortie Wasm générée.
- Flutter partage son environnement d'exécution Skia Wasm.
- Transformers.js partage les pondérations de modèle et les environnements d'exécution Wasm dont ils dépendent.
- WebLLM partage des modèles et des environnements d'exécution.
- wllama partage des modèles d'IA.
- Nuxt.js charge les dépendances partagées depuis le stockage interorigine et gère un plug-in Vite COS.
- Prompt API Polyfill partage des modèles d'IA entre ses backends WebLLM et Transformers.js.
- Prebid.js dispose d'une distribution CDN de la bibliothèque d'enchères d'en-tête compatible avec le COS.
Standardisation
Le stockage interorigine est une proposition du WICG qui en est à ses débuts. Vous pouvez lire l'examen de conception du TAG du W3C.
- Les intégrations d'hôte sont déposées auprès de leurs organismes de normalisation respectifs :
- Attribut
crossoriginstorageet attribut d'importationcrossOriginStorageavec la norme HTML WHATWG cross-origin-storage()avec le groupe de travail CSS- Option de requête
crossOriginStorageavec la norme Fetch
- Attribut
- Tests de plate-forme Web multi-navigateurs (en cours de développement)
- Des positions sur les normes ont été demandées à Mozilla et WebKit.
N'hésitez pas à nous faire part de vos commentaires sur l'API et la proposition. Vous pouvez signaler des problèmes, demander de l'aide ou ouvrir des demandes d'extraction dans le dépôt de stockage interorigine.
Ressources
- Consultez l'explication de l'API Storage interorigine et le brouillon de spécification.
- Suivez l'implémentation du COS dans Chrome en ajoutant aux favoris le bug général du stockage interorigine et ses dépendances.
- Consultez l'explication sur la liste de hachage publique.
- Répondez au questionnaire sur la sécurité et la confidentialité de COS.
- Consultez l'Intent to Prototype et l'entrée Chrome Platform Status.
Vous pouvez également consulter ces outils et démos :
- Awesome Cross-Origin Storage
- Source et instructions d'utilisation de l'extension de stockage interorigine
Autres ressources
- Gaining security and privacy by partitioning the cache
- Tester l'API Storage interorigine proposée dans Transformers.js
- Partitionnement du cache HTTP : la même image, téléchargée deux fois par Joan León
- API Storage interorigine : arrêtez de télécharger deux fois par Dennis Morello
- Je voulais que le navigateur intègre simplement jQuery. Stockage interorigine à la rescousse par Ahmad Alfy
Conférences et podcasts
- ShopTalk Show 732 : Thomas Steiner sur les nouvelles API Storage interorigine (podcast)
- Working Draft 723 : API Cross-Origin Storage (podcast en allemand)
- WeAreDevelopers: What is Cross-Origin Storage (podcast)
- Cross-Origin Storage: a shared cache for the web (Stockage interorigine : un cache partagé pour le Web) à JSNation US 2026