Publicado: 10 de noviembre de 2026
Las apps web modernas suelen depender de recursos grandes, como frameworks de JavaScript, motores de juegos y modelos de IA. A pesar de que los sitios usan recursos idénticos, cada uno debe descargar y almacenar su propia copia de cada uno.
Con la API de Cross-Origin Storage propuesta (COS, por sus siglas en inglés), el cliente especifica el contenido que busca por su hash y lo recupera de cualquier URL para compartirlo en los sitios designados (o en todos los sitios). Esto significa que se puede compartir un recurso exacto y conocido entre sitios, independientemente de la publicación del recurso. Esta propuesta conlleva beneficios de seguridad y desafíos de protección.
Casos de uso
Escribimos extensamente sobre la importancia de almacenar en caché los modelos y cualquier recurso con la API de Cache Storage. La API de Cross-Origin Storage va un paso más allá y podría ser beneficiosa cuando varios sitios web relacionados (o no) necesitan acceder al mismo recurso:
- Modelos de IA: Los modelos como Gemma o las variantes de Llama pesan desde aproximadamente un gigabyte hasta decenas de gigabytes. Almacenar y recuperar una copia a través de COS evita descargas duplicadas masivas. Esta es una de las principales motivaciones de la propuesta.
- Módulos de Wasm: Los frameworks como Flutter envían archivos de Wasm que se solicitan millones de veces al día en miles de orígenes distintos, siempre con bytes idénticos.
- Bibliotecas y frameworks de JavaScript populares: Agrupar el código de terceros por separado y en su totalidad (como la biblioteca de React completa y sin optimizar) permite que varias apps compartan una copia almacenada en caché a través de COS.
- Motores de juegos: Los juegos de navegador creados con motores como Godot o Unity pueden compartir el entorno de ejecución del motor a través de COS y recuperar solo los recursos específicos del juego a través de la red. Los portales de juegos que alojan muchos juegos casuales en diferentes orígenes o iframes son los que más se benefician.
- Fuentes web grandes: Las fuentes de íconos, las fuentes de emojis y las fuentes con una amplia cobertura de Unicode se descargan en una gran cantidad de páginas. Compartirlos una vez a través de COS ayuda tanto al rendimiento como a la sustentabilidad.
El flujo básico para trabajar con COS
La API de COS presenta un método navigator.crossOriginStorage.getFileHandle() a través del cual las apps web almacenan y recuperan archivos entre límites de origen, identificados por un hash criptográfico. La explicación tiene un ejemplo que muestra el flujo básico para trabajar con la API.
Probar hoy mismo
En este momento, hay dos formas de experimentar con el COS:
- Instala una extensión de navegador desde Chrome Web Store, Complementos de Firefox o App Store de Safari para rellenar la superficie de la API y todas las integraciones. Puedes probar el flujo de la API en cualquier navegador. O carga la extensión sin empaquetar desde su código fuente.
- Experimento en Chromium: Hay una implementación experimental de Chromium. Descárgalo para macOS en Apple Silicon o Linux x86_64 desde goo.gle/cos-chromium, luego abre
about://flags, busca "Almacenamiento de origen cruzado", configúralo como Habilitado y reinicia cuando se te solicite. Esta compilación incluye una integración de Herramientas para desarrolladores: busca Almacenamiento de origen cruzado en la pestaña Aplicación.
Interés en el ecosistema
COS es una propuesta en etapa inicial, y varios proyectos ya incluyen compatibilidad experimental, por lo general, detrás de una marca de habilitación y con capas como una mejora progresiva:
- Emscripten comparte el resultado de Wasm generado.
- Flutter comparte su entorno de ejecución de Skia Wasm.
- Transformers.js comparte los pesos de los modelos y los entornos de ejecución de Wasm de los que dependen.
- WebLLM comparte modelos y entornos de ejecución.
- wllama comparte modelos de IA.
- Nuxt.js carga dependencias compartidas desde el almacenamiento de origen cruzado y mantiene un complemento de Vite para COS.
- Prompt API Polyfill comparte modelos de IA en sus backends de WebLLM y Transformers.js.
- Prebid.js tiene una distribución de CDN lista para COS de la biblioteca de licitación de encabezado.
Estandarización
El almacenamiento de origen cruzado es una propuesta de WICG en etapa inicial. Puedes leer la revisión de diseño de TAG del W3C inicial.
- Las integraciones de host se presentan ante sus respectivos organismos de normalización:
- Atributo
crossoriginstoragey atributo de importacióncrossOriginStoragecon el estándar HTML de WHATWG cross-origin-storage()con el Grupo de Trabajo de CSS- Opción de solicitud
crossOriginStoragecon el estándar de recuperación
- Atributo
- Pruebas de la plataforma web para varios navegadores (en curso)
- Se solicitaron posiciones de estándares a Mozilla y WebKit.
Agradecemos los comentarios sobre la API y la propuesta. Puedes informar problemas, mostrar asistencia o abrir solicitudes de extracción en el repositorio de almacenamiento de origen cruzado.
Recursos
- Lee la explicación de la API de Cross-Origin Storage y el borrador de la especificación.
- Sigue la implementación de COS en Chrome destacando el error general de almacenamiento de origen cruzado y sus dependencias.
- Consulta la explicación de la lista de hashes públicos.
- Completa el cuestionario de seguridad y privacidad de COS.
- Revisa la Intención de crear un prototipo y la entrada de Chrome Platform Status.
Además, consulta estas herramientas y demostraciones:
- Awesome Cross-Origin Storage
- Fuente de la extensión de almacenamiento de origen cruzado e instrucciones de uso
Lectura adicional de referencia
- Gaining security and privacy by partitioning the cache
- Experimentación con la API de Storage de origen cruzado propuesta en Transformers.js
- Partición de la caché HTTP: la misma imagen, descargada dos veces, de Joan León
- API de Storage de origen cruzado: Deja de descargar dos veces, de Dennis Morello
- Quería que el navegador solo enviara jQuery. Almacenamiento de origen cruzado al rescate, de Ahmad Alfy
Charlas y podcasts
- ShopTalk Show 732: Thomas Steiner on New Cross-Origin Storage APIs (podcast)
- Working Draft 723: API de Storage de origen cruzado (podcast en alemán)
- WeAreDevelopers: What is Cross-Origin Storage (podcast)
- Almacenamiento de origen cruzado: una caché compartida para la web en JSNation US 2026