Yayınlanma tarihi: 10 Kasım 2026
Modern web uygulamaları genellikle JavaScript çerçeveleri, oyun motorları ve yapay zeka modelleri gibi büyük öğelere bağlıdır. Siteler aynı öğeleri kullanıyor olsa da her sitenin her bir öğenin kendi kopyasını indirip depolaması gerekir.
Önerilen Cross-Origin Storage API (kısaca COS) ile istemci, aradığı içeriği karma değeriyle belirtir ve belirlenen sitelerde (veya tüm sitelerde) paylaşmak için herhangi bir URL'den getirir. Bu, tam ve bilinen bir kaynağın, öğenin yayınlanmasından bağımsız olarak siteler arasında paylaşılabileceği anlamına gelir. Bu teklif, güvenlik avantajları ve güvenlik zorlukları getiriyor.
Kullanım alanları
Modelleri önbelleğe almanın ve Cache Storage API ile öğeleri önbelleğe almanın önemi hakkında ayrıntılı bilgi verdik. Cross-Origin Storage API bir adım daha ileri gider ve birden fazla ilişkili (veya başka) web sitesinin aynı kaynağa erişmesi gerektiğinde faydalı olabilir:
- Yapay zeka modelleri: Gemma veya Llama varyantları gibi modellerin boyutu yaklaşık bir gigabayt ile onlarca gigabayt arasında değişir. COS aracılığıyla tek bir kopyanın depolanması ve alınması, büyük boyutlu yinelenen indirmeleri önler. Bu, teklifin arkasındaki temel motivasyondur.
- Wasm modülleri: Flutter gibi çerçeveler, binlerce farklı kaynakta günde milyonlarca kez istenen ve her zaman bayt olarak aynı olan Wasm dosyaları gönderir.
- Popüler JavaScript kitaplıkları ve çerçeveleri: Tedarikçi kodu ayrı ve bütünüyle (ör. eksiksiz, ağaç sallama uygulanmamış React kitaplığı) paketlendiğinde birden fazla uygulama, COS aracılığıyla önbelleğe alınmış tek bir kopyayı paylaşabilir.
- Oyun motorları: Godot veya Unity gibi motorlar üzerine inşa edilen tarayıcı oyunları, motor çalışma zamanını COS aracılığıyla paylaşabilir ve ağ üzerinden yalnızca oyuna özel öğeleri getirebilir. Farklı kaynaklarda veya iFrame'lerde birçok basit oyun barındıran oyun portalları bu özellikten en çok yararlananlardır.
- Büyük web yazı tipleri: Simge yazı tipleri, emoji yazı tipleri ve geniş Unicode kapsamına sahip yazı tipleri çok sayıda sayfaya indirilir. Bunları COS aracılığıyla bir kez paylaşmak hem performansa hem de sürdürülebilirliğe yardımcı olur.
COS ile çalışmanın temel akışı
COS API, web uygulamalarının kriptografik karma ile tanımlanan kaynak sınırları genelinde dosyaları depolayıp almasını sağlayan bir navigator.crossOriginStorage.getFileHandle() yöntemi sunar. Açıklayıcıda, API ile çalışmanın temel akışını gösteren bir örnek yer alır.
Hemen deneyin
Şu anda COS ile deneme yapmanın iki yolu vardır:
- API yüzeyini ve tüm entegrasyonları polyfill etmek için Chrome Web Mağazası, Firefox Eklentileri veya Safari Uygulama Mağazası'dan bir tarayıcı uzantısı yükleyin. API akışını herhangi bir tarayıcıda test edebilirsiniz. Alternatif olarak, uzantıyı kaynak kodundan paketi açılmış olarak yükleyebilirsiniz.
- Chromium'da deneme: Deneysel bir Chromium uygulaması vardır. Apple Silicon'da macOS veya Linux x86_64 için goo.gle/cos-chromium adresinden indirin, ardından
about://flagsadresini açın, "Cross-Origin Storage"ı arayın, Etkin olarak ayarlayın ve istendiğinde yeniden başlatın. Bu derleme, Geliştirici Araçları entegrasyonu içerir: Uygulama sekmesinde Çapraz kaynak depolama alanı'nı bulun.
Ekosistem ilgisi
COS, erken aşamadaki bir tekliftir ve bazı projeler, genellikle etkinleştirme işaretinin arkasında ve progresif geliştirme olarak katmanlı şekilde deneysel destek sunmaktadır:
- Emscripten, oluşturulan Wasm çıkışını paylaşır.
- Flutter, Skia Wasm çalışma zamanını paylaşır.
- Transformers.js, model ağırlıklarını ve bağlı oldukları Wasm çalışma zamanlarını paylaşır.
- WebLLM, modelleri ve çalışma zamanlarını paylaşır.
- wllama, yapay zeka modellerini paylaşır.
- Nuxt.js, paylaşılan bağımlılıkları çapraz kaynak depolama alanından yükler ve bir Vite COS eklentisi bulundurur.
- Prompt API Polyfill, yapay zeka modellerini WebLLM ve Transformers.js arka uçlarında paylaşır.
- Prebid.js, başlıktan teklif alma (header bidding) kitaplığının COS'a hazır bir CDN dağıtımına sahiptir.
Standartlaştırma
Çapraz Kaynak Depolama, erken aşamadaki bir WICG teklifidir. Erken W3C TAG Tasarım İncelemesi'ni okuyabilirsiniz.
- Ana makine entegrasyonları, ilgili standart kuruluşlarıyla birlikte dosyalanır:
- WHATWG HTML Standardı ile
crossoriginstorageözelliği vecrossOriginStorageiçe aktarma özelliği - CSS Çalışma Grubu ile
cross-origin-storage() - Fetch Standard ile
crossOriginStorageistek seçeneği
- WHATWG HTML Standardı ile
- Tarayıcılar arası Web Platformu Testleri (devam eden çalışma)
- Mozilla ve WebKit'ten standartlarla ilgili görüşleri talep edilmiştir.
API ve teklifle ilgili geri bildirimlerinizi bekliyoruz. Çapraz Kaynak Depolama Alanı deposunda sorunları bildirebilir, destek gösterebilir veya pull istekleri açabilirsiniz.
Kaynaklar
- Cross-Origin Storage API ile ilgili açıklayıcı bilgileri ve taslak spesifikasyonu okuyun.
- Çapraz Kaynak Depolama şemsiye hatasını ve bağımlılıklarını yıldızla işaretleyerek Chrome'da COS'un uygulanmasını takip edin.
- Herkese Açık Karma Listesi açıklayıcısına göz atın.
- COS güvenlik ve gizlilik anketini doldurun.
- Intent to Prototype ve Chrome Platform Status girişini inceleyin.
Ayrıca şu araçlara ve demolara göz atın:
Ek okuma materyali
- Önbelleği bölümlere ayırarak güvenlik ve gizlilik sağlama
- Transformers.js'de önerilen Cross-Origin Storage API ile deneme yapma
- HTTP önbellek bölümlendirme: Aynı resim iki kez indirildi (Joan León)
- Dennis Morello'nun Cross-Origin Storage API: Stop Downloading Twice (Çapraz Kaynak Depolama API'si: İki Kez İndirmeyi Durdurma) başlıklı makalesi
- Tarayıcının yalnızca jQuery'yi göndermesini istedim. Çapraz Kaynak Depolama kurtarmaya geldi (Ahmad Alfy)
Söyleşiler ve podcast'ler
- ShopTalk Show 732: Thomas Steiner on New Cross-Origin Storage APIs (podcast)
- Working Draft 723: Cross-Origin Storage API (Almanca podcast)
- WeAreDevelopers: What is Cross-Origin Storage (podcast)
- JSNation US 2026'da Çapraz Kaynak Depolama Alanı: Web için paylaşılan bir önbellek