Presentazione dell'API Storage multiorigine

Data di pubblicazione: 10 novembre 2026

Le app web moderne spesso dipendono da asset di grandi dimensioni, come framework JavaScript, motori grafici e modelli di AI. Nonostante i siti utilizzino asset identici, ogni sito deve scaricare e archiviare la propria copia di ciascuno.

Con l'API Cross-Origin Storage proposta, in breve COS, il client specifica i contenuti che sta cercando in base al relativo hash e li recupera da qualsiasi URL per condividerli tra i siti designati (o tutti i siti). Ciò significa che una risorsa esatta e nota può essere condivisa tra i siti, indipendentemente dalla pubblicazione dell'asset. Questa proposta comporta vantaggi in termini di sicurezza e sfide in termini di protezione.

Casi d'uso

Abbiamo scritto ampiamente sull'importanza della memorizzazione nella cache dei modelli e della memorizzazione nella cache di qualsiasi asset con l'API Cache Storage. L'API Storage multiorigine fa un ulteriore passo avanti e potrebbe essere utile quando più siti web correlati (o meno) devono accedere alla stessa risorsa:

  • Modelli di AI: i modelli come Gemma o le varianti di Llama pesano da circa un gigabyte a decine di gigabyte. L'archiviazione e il recupero di una copia tramite COS evitano download duplicati di grandi dimensioni. Questa è una delle motivazioni principali alla base della proposta.
  • Moduli Wasm: framework come Flutter inviano file Wasm che vengono richiesti milioni di volte al giorno da migliaia di origini distinte, sempre identici a livello di byte.
  • Librerie e framework JavaScript più diffusi: il raggruppamento del codice del fornitore separatamente e nella sua interezza (ad esempio la libreria React completa e non sottoposta a tree shaking) consente a più app di condividere una copia memorizzata nella cache tramite COS.
  • Motori grafici: i giochi per browser basati su motori come Godot o Unity possono condividere il runtime del motore tramite COS e recuperare solo gli asset specifici del gioco sulla rete. I portali di giochi che ospitano molti casual game in origini o iframe diversi sono quelli che ne traggono i maggiori vantaggi.
  • Caratteri web di grandi dimensioni: i caratteri delle icone, delle emoji e con un'ampia copertura Unicode vengono scaricati su un numero enorme di pagine. Condividerli una volta tramite COS aiuta sia le prestazioni che la sostenibilità.
Due giochi Three.js non correlati, Descent e Quake, condividono una copia del motore tramite COS, ispezionata in DevTools.
Due giochi Three.js non correlati, Descent (nella scheda in background) e Quake (nella scheda in primo piano), condividono una copia del motore tramite COS, ispezionata in DevTools. Questo screenshot proviene da una build Chromium sperimentale e potrebbe non riflettere il design finale.

Il flusso di base per l'utilizzo di COS

L'API COS introduce un metodo navigator.crossOriginStorage.getFileHandle() tramite il quale le app web archiviano e recuperano i file oltre i confini dell'origine, identificati da un hash di crittografia. La spiegazione contiene un esempio che mostra il flusso di base per l'utilizzo dell'API.

Prova subito

Esistono due modi per sperimentare con COS in questo momento:

  • Installa un'estensione del browser dal Chrome Web Store, dai componenti aggiuntivi di Firefox o dal Safari App Store per eseguire il polyfill della superficie dell'API e di tutte le integrazioni. Puoi testare il flusso dell'API in qualsiasi browser. In alternativa, carica l'estensione non pacchettizzata dal relativo codice sorgente.
  • Esperimento in Chromium: è disponibile un'implementazione sperimentale di Chromium. Scaricalo per macOS su Apple Silicon o Linux x86_64 da goo.gle/cos-chromium, quindi apri about://flags, cerca "Cross-Origin Storage", impostalo su Enabled e riavvia quando richiesto. Questa build include un'integrazione di DevTools: trova Spazio di archiviazione multiorigine nella scheda Applicazione.

Interesse per l'ecosistema

COS è una proposta in fase iniziale e diversi progetti offrono già un supporto sperimentale, in genere dietro un flag di attivazione e con un livello di potenziamento progressivo:

  • Emscripten condivide l'output Wasm generato.
  • Flutter condivide il suo runtime Skia Wasm.
  • Transformers.js condivide i pesi dei modelli e i runtime Wasm da cui dipendono.
  • WebLLM condivide modelli e runtime.
  • wllama condivide modelli di AI.
  • Nuxt.js carica le dipendenze condivise dallo spazio di archiviazione multiorigine e gestisce un plug-in Vite COS.
  • API Prompt Polyfill condivide i modelli di AI tra i suoi backend WebLLM e Transformers.js.
  • Prebid.js ha una distribuzione CDN pronta per COS della libreria di header bidding.

Standardizzazione

Cross-Origin Storage è una proposta WICG in fase iniziale. Puoi leggere la revisione del design del TAG W3C iniziale.

I feedback sull'API e sulla proposta sono ben accetti. Puoi segnalare problemi, mostrare supporto o aprire richieste di pull nel repository di archiviazione multiorigine.

Risorse

Inoltre, dai un'occhiata a questi strumenti e demo:

Letture aggiuntive di approfondimento

Talk e podcast