Publicado em: 10 de novembro de 2026
Os apps da Web modernos geralmente dependem de recursos grandes, como frameworks de JavaScript, mecanismos de jogo e modelos de IA. Apesar de os sites usarem recursos idênticos, cada um precisa baixar e armazenar a própria cópia de cada um.
Com a proposta da API Cross-Origin Storage (COS), o cliente especifica o conteúdo que está procurando pelo hash e o busca em qualquer URL para compartilhar nos sites designados (ou em todos os sites). Isso significa que um recurso exato e conhecido pode ser compartilhado entre sites, independentemente de veicular o recurso. Essa proposta traz benefícios de segurança e desafios de proteção.
Casos de uso
Já escrevemos bastante sobre a importância de armazenar modelos em cache e armazenar qualquer recurso em cache com a API Storage Cache. A API Cross-Origin Storage vai além e pode ser útil quando vários sites relacionados (ou não) precisam acessar o mesmo recurso:
- Modelos de IA: modelos como as variantes do Gemma ou do Llama pesam de aproximadamente um gigabyte a dezenas de gigabytes. Armazenar e recuperar uma cópia pelo COS evita downloads duplicados em massa. Essa é uma das principais motivações da proposta.
- Módulos Wasm: frameworks como o Flutter enviam arquivos Wasm que são solicitados milhões de vezes por dia em milhares de origens distintas, sempre idênticos em bytes.
- Bibliotecas e frameworks JavaScript conhecidos: agrupar o código do fornecedor separadamente e na íntegra (como a biblioteca React completa e sem tree shaking) permite que vários apps compartilhem uma cópia em cache pelo COS.
- Mecanismos de jogo: os jogos de navegador criados em mecanismos como Godot ou Unity podem compartilhar o ambiente de execução do mecanismo pelo COS e buscar apenas recursos específicos do jogo pela rede. Os portais de jogos que hospedam muitos jogos casuais em diferentes origens ou iframes são os mais beneficiados.
- Fontes da Web grandes: fontes de ícones, de emojis e com ampla cobertura Unicode são baixadas em um número enorme de páginas. Compartilhar esses dados uma vez pelo COS ajuda no desempenho e na sustentabilidade.
O fluxo básico de trabalho com o COS
A API COS apresenta um método navigator.crossOriginStorage.getFileHandle() em que os apps da Web armazenam e recuperam arquivos em limites de origem, identificados por um hash criptográfico. O documento explicativo tem um exemplo que mostra o fluxo básico de trabalho com a API.
Teste hoje mesmo
Há duas maneiras de testar o COS agora:
- Instale uma extensão de navegador da Chrome Web Store, dos complementos do Firefox ou da App Store do Safari para polyfill a superfície da API e todas as integrações. É possível testar o fluxo da API em qualquer navegador. Ou carregue a extensão descompactada do código-fonte.
- Experimento no Chromium: há uma implementação experimental do Chromium. Baixe para macOS no Apple Silicon ou Linux x86_64 em goo.gle/cos-chromium, abra
about://flags, pesquise "Cross-Origin Storage", defina como Enabled e reinicie quando solicitado. Esta versão inclui uma integração com o DevTools: encontre o Armazenamento entre origens na guia Aplicativo.
Interesse no ecossistema
O COS é uma proposta em estágio inicial, e vários projetos já oferecem suporte experimental, geralmente por trás de uma flag de ativação e em camadas como um aprimoramento progressivo:
- O Emscripten compartilha a saída do Wasm gerada.
- O Flutter compartilha o ambiente de execução do Skia Wasm.
- O Transformers.js compartilha os pesos do modelo e os ambientes de execução do Wasm de que dependem.
- O WebLLM compartilha modelos e ambientes de execução.
- O wllama compartilha modelos de IA.
- O Nuxt.js carrega dependências compartilhadas do armazenamento entre origens e mantém um plug-in do Vite para COS.
- O polyfill da API Prompt compartilha modelos de IA nos back-ends WebLLM e Transformers.js.
- O Prebid.js tem uma distribuição de CDN pronta para COS da biblioteca de lances de cabeçalho.
Padronização
O armazenamento entre origens é uma proposta do WICG em estágio inicial. Leia a revisão de design do TAG do W3C (link em inglês).
- As integrações de host são registradas nos respectivos órgãos de padronização:
- Atributo
crossoriginstoragee atributo de importaçãocrossOriginStoragecom o padrão HTML do WHATWG cross-origin-storage()com o CSS Working Group- Opção de solicitação
crossOriginStoragecom o Fetch Standard
- Atributo
- Testes de plataforma da Web em vários navegadores (em andamento)
- As posições de padrões foram solicitadas à Mozilla e ao WebKit.
Seu feedback sobre a API e a proposta é bem-vindo. Você pode registrar problemas, mostrar suporte ou abrir solicitações de pull no repositório de armazenamento entre origens.
Recursos
- Leia a explicação sobre a API Storage entre origens e o rascunho da especificação.
- Acompanhe a implementação do COS no Chrome marcando com estrela o bug geral do armazenamento entre origens e as dependências dele.
- Confira a explicação sobre a lista de hash pública.
- Responda ao questionário de segurança e privacidade do COS.
- Consulte a Intent to Prototype e a entrada do Status da Plataforma Chrome.
Além disso, confira estas ferramentas e demonstrações:
Leitura de contexto adicional
- Como aumentar a segurança e a privacidade particionando o cache
- Como testar a API Storage entre origens proposta no Transformers.js
- Particionamento de cache HTTP: a mesma imagem, baixada duas vezes por Joan León
- API Cross-Origin Storage: pare de fazer o download duas vezes, por Dennis Morello
- Eu queria que o navegador apenas enviasse o jQuery. Armazenamento entre origens veio para o resgate, de Ahmad Alfy
Palestras e podcasts
- ShopTalk Show 732: Thomas Steiner on New Cross-Origin Storage APIs (podcast)
- Working Draft 723: API Storage entre origens (podcast em alemão)
- WeAreDevelopers: What is Cross-Origin Storage (podcast)
- Armazenamento entre origens: um cache compartilhado para a Web na JSNation US 2026