Berpartisipasi dalam uji coba origin untuk akses penyimpanan non-cookie melalui Storage Access API

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

Chrome 115 memperkenalkan perubahan pada API penyimpanan, pekerja layanan, dan komunikasi dengan mempartisi dalam konteks pihak ketiga. Selain diisolasi oleh kebijakan origin yang sama, API yang terpengaruh dan digunakan dalam konteks pihak ketiga juga diisolasi oleh situs konteks tingkat atas.

Situs yang belum memiliki waktu untuk mengimplementasikan dukungan bagi partisi penyimpanan pihak ketiga dapat mengikuti uji coba penghentian penggunaan untuk membatalkan partisi sementara (melanjutkan isolasi oleh kebijakan origin yang sama, tetapi menghapus isolasi oleh situs tingkat atas) dan memulihkan perilaku sebelumnya untuk API penyimpanan, pekerja layanan, dan komunikasi, dalam konten yang disematkan di situs mereka. Uji coba penghentian penggunaan ini akan berakhir dengan rilis Chrome 127 pada 3 September 2024. Perhatikan bahwa hal ini terpisah dengan uji coba penghentian penggunaan untuk akses ke cookie pihak ketiga: ini hanya untuk akses ke penyimpanan.

Sebagai solusi jangka panjang untuk mengatasi kasus penggunaan tertentu yang terganggu oleh partisi penyimpanan non-cookie pihak ketiga, Chrome mengusulkan kemampuan bagi pihak ketiga untuk meminta akses penyimpanan/komunikasi (baik cookie dan non-cookie) melalui Storage Access API (pengiriman mulai Chrome 117), yang telah memungkinkan pihak ketiga untuk meminta akses cookie.

Mulai Chrome 120, proposal ini akan tersedia untuk eksperimen melalui uji coba origin. Developer harus berpartisipasi dalam uji coba origin ini untuk mengevaluasi cara solusi yang diusulkan menangani kasus penggunaan mereka guna memastikan mereka siap sebelum uji coba penghentian penggunaan berakhir.

Detail uji coba origin

Mulai Chrome 120, Chrome akan mendukung uji coba origin, StorageAccessAPIBeyondCookies, untuk mengaktifkan ekstensi Storage Access API yang diusulkan (kompatibel dengan versi sebelumnya) guna mengizinkan akses ke penyimpanan tanpa partisi (cookie dan non-cookie) dalam konteks pihak ketiga.

Mekanika

API ini dapat digunakan sebagai berikut (JavaScript yang berjalan dalam iframe tersemat):

// 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', ...);

Jika Anda hanya menginginkan akses API tertentu, bukan akses ke all, Anda dapat meneruskan nama hanya nama sebutan channel API yang Anda butuhkan. Misalnya, Anda dapat meneruskan {sessionStorage: true} untuk hanya mendapatkan akses ke Penyimpanan Sesi, atau {indexedDB: true, locks:true} untuk mendapatkan akses ke IndexedDB dan Kunci Web.

Selain memanggil ekstensi tambahan ini, akses ke penyimpanan non-cookie akan cocok dengan persyaratan saat ini untuk akses cookie melalui Storage Access API. Misalnya, di Chrome, tidak ada perintah yang ditampilkan saat situs asal berada di Set Situs Terkait (RWS, nama baru untuk Set Pihak Pertama). Origin yang bukan bagian dari RWS yang sama akan tunduk pada persyaratan permintaan Storage Access API di Chrome.

Durasi

Uji coba origin akan tersedia dari Chrome 120 hingga Chrome 125 (atau setelah 6 Agustus 2024 dalam versi mana pun).

Cakupan

Hanya Penyimpanan DOM (sesi dan penyimpanan lokal), Indexed DB, dan Web Lock yang tersedia di Chrome 120.

Penyimpanan Cache, Sistem File Pribadi Origin, Kuota, Blob Storage, dan Saluran Siaran ditambahkan di Chrome 121.

Pekerja Bersama dan kontrol atas penyertaan cookie telah ditambahkan di Chrome 123.

Pekerja Khusus mewarisi akses ke cookie yang tidak dipartisi jika requestStorageAccess dipanggil sebelum pekerja dibuat mulai Chrome 120 (ini tidak memerlukan penggunaan handle Storage Access API).

Berpartisipasi

  1. Menilai cara Anda menggunakan penyimpanan cookie dan non-cookie dalam konteks pihak ketiga. Contoh kasus penggunaan dapat membantu Anda memahami apakah proposal ini sesuai dengan kebutuhan Anda.
  2. Luncurkan Chrome versi 120 (atau yang lebih baru) dan pastikan tanda test-third-party-cookie-phaseout diaktifkan.
  3. Jika ingin menguji fitur secara lokal tanpa menyiapkan token uji coba origin terlebih dahulu, Anda dapat mengaktifkan #enable-experimental-web-platform-features di browser.
    1. Setelah selesai menguji secara lokal, Anda dapat register ke uji coba origin StorageAccessAPIBeyondCookies dan mendapatkan token untuk domain Anda. Untuk mendapatkan petunjuk yang lebih mendetail, buka Mulai menggunakan uji coba origin. Panduan untuk memecahkan masalah uji coba origin Chrome menyediakan checklist lengkap untuk memastikan token Anda dikonfigurasi dengan benar.
    2. Sematkan token uji coba origin tersebut ke iframe yang diperlukan untuk menggunakan handle Storage Access API di dalamnya, menggunakan header HTTP, tag meta HTML, atau secara terprogram. Perhatikan bahwa token harus disematkan oleh frame yang ingin menggunakan API ini, menyematkannya dalam frame induk tidak akan mengaktifkan API dalam frame turunan.
  4. Panggil document.requestStorageAccess(...) untuk mendapatkan handle Storage Access API di iframe lintas situs. Lihat dokumentasi Storage Access API untuk mengetahui persyaratan agar panggilan ini berhasil.
  5. Migrasikan penyimpanan yang terkait di iframe Anda untuk menggunakan handle Storage Access API jika tersedia. Misalnya, panggilan ke window.sessionStorage.setItem(...) menjadi handle.sessionStorage.setItem(...).
  6. Buka situs Anda dan pastikan nama sebutan channel akses penyimpanan berfungsi sebagaimana mestinya.
  7. Untuk berhenti berpartisipasi dalam uji coba origin, hapus token yang Anda tambahkan di langkah 3.
  8. Kirim masukan atau ajukan masalah apa pun yang Anda temukan ke repositori GitHub Storage Access API Non-Cookie Storage.

Demo: menggunakan Storage Access API untuk mengakses Penyimpanan Lokal yang tidak dipartisi

Demo berikut menunjukkan cara mengakses Saluran Siaran yang tidak dipartisi dari iframe pihak ketiga menggunakan Storage Access API:

https://saa-beyond-cookies.glitch.me/

Demo memerlukan Chrome 121 atau yang lebih baru dengan tanda test-third-party-cookie-phaseout diaktifkan.

Referensi tambahan