Chrome 115, üçüncü taraf bağlamlarında bölümlendirme yaparak depolama alanı, hizmet çalışanları ve iletişim API'lerinde değişiklikler yaptı. Aynı kaynak politikası tarafından izole olmanın yanı sıra üçüncü taraf bağlamlarında kullanılan etkilenen API'ler, üst düzey bağlamın sitesi tarafından da izole edilir.
Üçüncü taraf depolama alanı bölümlendirmesi desteğini uygulamaya zaman bulamayan siteler, geçici olarak bölümlendirmeyi kaldırmak (aynı kaynak politikasına göre izolasyonu sürdürmek ancak üst düzey siteye göre izolasyonu kaldırmak) ve sitelerine yerleştirilmiş içeriklerde depolama, hizmet çalışanları ve iletişim API'lerinin önceki davranışını geri yüklemek için desteğinin sonlandırılması deneme sürümüne katılabilir. Bu desteği sonlandırma denemesinin süresi, 3 Eylül 2024'te Chrome 127'nin yayınlanmasıyla sona erecek. Bunun, üçüncü taraf çerezlerine erişim için desteği sonlandırma denemesinden ayrı olduğunu unutmayın. Bu deneme, yalnızca depolama alanına erişim içindir.
Chrome, üçüncü tarafların çerez olmayan depolama bölümlendirmesi nedeniyle kesintiye uğradığı belirli kullanım alanlarını ele almaya yönelik uzun vadeli bir çözüm olarak üçüncü tarafların, üçüncü tarafların çerez erişimi istemesine olanak tanıyan Storage Access API (Chrome 117 itibarıyla gönderim) üzerinden depolama/iletişim erişimi (çerez ve çerez olmayan) isteme olanağı sunuyor.
Chrome 120 sürümünden itibaren bu teklif, kaynak denemesi aracılığıyla deneme için kullanılabilecek. Geliştiriciler, desteğin sonlandırılması denemesi sona ermeden önce hazırlıklı olmak için önerilen çözümün kullanım alanlarını nasıl ele aldığını değerlendirmek üzere bu kaynak denemesine katılmalıdır.
Kaynak denemesi ayrıntıları
Chrome 120'den itibaren Chrome, üçüncü taraf bağlamında bölümlenmemiş depolama alanına (çerez ve çerez dışı) erişim izni vermek için Storage Access API'nin (geriye dönük uyumlu) önerilen uzantısını etkinleştirmek üzere StorageAccessAPIBeyondCookies adlı bir kaynak denemesini destekleyecektir.
Teknisyenler
API aşağıdaki gibi kullanılabilir (yerleştirilmiş iframe'de çalışan JavaScript):
// Request a new storage handle via rSA (this should prompt the user)
const handle = await document.requestStorageAccess({all: true});
// Write some 1P context sessionStorage
handle.sessionStorage.setItem('userid', '1234');
// Write some 1P context localStorage
handle.localStorage.setItem('preference', 'A');
// Open or create an indexedDB that is shared with the 1P context
const messageDB = handle.indexedDB.open('messages');
// Use locks shared with the 1P context
await handle.locks.request('example', ...);
all
'ye erişim yerine yalnızca belirli API'lere erişim istiyorsanız yalnızca ihtiyacınız olan API kimliklerinin adlarını iletebilirsiniz. Örneğin, yalnızca Oturum Depolaması erişimi için {sessionStorage: true}
ya da IndexedDB ve Web Kilitleri'ne erişmek için {indexedDB: true, locks:true}
iletebilirsiniz.
Bu ek uzantıyı çağırmanın yanı sıra, çerez olmayan depolama alanına erişim, Storage Access API üzerinden çerez erişiminin mevcut gereklilikleriyle eşleşme sağlayacaktır. Örneğin, Chrome'da kaynaklar aynı İlgili Web Sitesi Grubu'nda (RWS, Birinci Taraf Gruplarının yeni adı) olduğunda herhangi bir istem gösterilmez. Aynı RWS'nin parçası olmayan kaynaklar, Chrome'da Storage Access API'nin istem gereksinimlerine tabi olur.
Süre
Kaynak denemesi Chrome 120'den Chrome 125'e (veya herhangi bir aşamada 6 Ağustos 2024'ten sonra) kadar kullanılabilir.
Kapsam
Chrome 120'de yalnızca DOM Depolama (oturum ve yerel depolama), Dizine Eklenmiş DB ve Web Kilitleri kullanılabilir.
Chrome 121'de önbellek depolama alanı, kaynak özel dosya sistemi, kota, blob depolama alanı ve yayın kanalı eklendi.
Ortak çalışanlar ve çerezlerin dahil edilmesi üzerinde kontrol, Chrome 123'e eklendi.
Chrome 120'den itibaren requestStorageAccess
, işleyici oluşturulmadan önce çağrılırsa özel işleyiciler, bölümlenmemiş çerezlere erişimi devralır (bu işlem için Storage Access API kimliğinin kullanılması gerekmez).
Katıl
- Çerez ve çerez olmayan depolama alanını üçüncü taraf bağlamında nasıl kullandığınızı değerlendirin. Örnek kullanım alanları, bu teklifin ihtiyaçlarınıza uygun olup olmadığını anlamanıza yardımcı olabilir.
- Chrome 120 sürümünü (veya sonraki bir sürümü) başlatın ve test-third-party-cookie-phaseout işaretinin etkinleştirildiğinden emin olun.
- Özelliği, önce bir kaynak deneme jetonu oluşturmadan yerel olarak test etmek istiyorsanız tarayıcınızda #enable-experimental-web-platform-features özelliğini etkinleştirebilirsiniz.
- Yerel olarak testi tamamladıktan sonra StorageAccessAPIBeyondCookies kaynak denemesine register ve alanlarınız için bir jeton alabilirsiniz. Daha ayrıntılı talimatlar için Kaynak denemelerini kullanmaya başlama başlıklı makaleyi inceleyin. Chrome kaynak denemeleriyle ilgili sorunları giderme kılavuzu, jetonunuzun doğru şekilde yapılandırıldığından emin olmanızı sağlayacak eksiksiz bir kontrol listesi sağlar.
- Storage Access API herkese açık kullanıcı adını kullanmanız gereken iframe'e, HTTP üstbilgisi, HTML meta etiketi veya programatik şekilde kaynak deneme jetonunu yerleştirin. Jetonun bu API'yi kullanmak isteyen herhangi bir çerçeveye yerleştirilmesi gerektiğini unutmayın. Simgenin üst çerçeveye yerleştirilmesi, alt çerçevelerde API'nin etkinleştirilmesini sağlamaz.
- Siteler arası iFrame'de Storage Access API kimliğini almak için
document.requestStorageAccess(...)
işlevini çağırın. Bu çağrının başarılı olmasıyla ilgili şartlar için Storage Access API dokümanlarını inceleyin. - Varsa Storage Access API herkese açık kullanıcı adını kullanmak için iFrame'inizdeki ilgili depolama alanını taşıyın. Örneğin,
window.sessionStorage.setItem(...)
çağrılarıhandle.sessionStorage.setItem(...)
olur. - Web sitenizi açın ve depolama alanı erişim herkese açık kullanıcı adının istenen şekilde çalıştığını doğrulayın.
- Orijinal denemeye katılımınızı durdurmak için 3. adımda eklediğiniz jetonu kaldırın.
- Storage Access API Non-Cookie Storage GitHub deposuna, geri bildiriminizi veya karşılaştığınız sorunları iletin.
Demo: Bölümlendirilmemiş Yerel Depolama'ya erişmek için Storage Access API'yi kullanma
Aşağıdaki demoda, Storage Access API'yi kullanarak üçüncü taraf bir iFrame'den bölümlenmemiş yayın kanallarına nasıl erişileceği gösterilmektedir:
https://saa-beyond-cookies.glitch.me/
Demo, test-third-party-cookie-phaseout işaretinin etkin olduğu Chrome 121 veya sonraki bir sürümü gerektirir.