השתתפות בגרסת המקור לניסיון לקבלת גישה לאחסון שאינו של קובצי cookie דרך Storage Access API

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

ב-Chrome 115 בוצעו שינויים באחסון, ב-Service Workers ובממשקי API של תקשורת על ידי חלוקה למחיצות (partitioning) בהקשרים של צד שלישי. בנוסף לבידוד שלהם על ידי אותה מדיניות מקור, ממשקי ה-API המושפעים שמשמשים בהקשרים של צד שלישי מבודדים גם על ידי האתר של ההקשר ברמה העליונה.

אתרים שלא הייתה להם זמן ליישם תמיכה בחלוקת אחסון של צד שלישי למחיצות, יכולים להשתתף בתקופת ניסיון להוצאה משימוש כדי לבטל את החלוקה באופן זמני (להמשיך בבידוד על ידי מדיניות מקור זהה אך להסיר בידוד על ידי אתר ברמה העליונה) ולשחזר התנהגות קודמת של אחסון, רכיבי שירות (service worker) וממשקי API לתקשורת בתוכן שמוטמע באתר שלהם. תקופת הניסיון להוצאה משימוש תסתיים ב-3 בספטמבר 2024 כשהגרסה של Chrome 127 תושק. חשוב לשים לב שההחלפה הזו לא קשורה לניסיון ההוצאה משימוש של גישה לקובצי Cookie של צד שלישי: רק לצורך גישה לאחסון.

כפתרון לטווח ארוך, לטיפול בתרחישים לדוגמה מסוימים ששינוים משבשים בעקבות חלוקה למחיצות (partitioning) של אחסון שאינו קובצי Cookie על ידי צד שלישי, Chrome מציע לצדדים שלישיים אפשרות לבקש גישה לאחסון/לתקשורת (גם לקובצי Cookie וגם לקובצי Cookie) באמצעות Storage Access API (משלוח החל מגרסה 117 של Chrome), שמאפשר לצדדים שלישיים לבקש גישה לקובצי Cookie.

החל מגרסה 120 של Chrome, ההצעה הזו תהיה זמינה לניסוי דרך גרסת מקור לניסיון. המפתחים צריכים להשתתף בגרסת המקור לניסיון כדי להעריך איך הפתרון המוצע נותן מענה לתרחישים לדוגמה שלהם, כדי להבטיח שהם יהיו מוכנים לפני סיום תקופת הניסיון של ההוצאה משימוש.

פרטים על גרסת המקור לניסיון

החל מגרסה 120 של Chrome, דפדפן Chrome יתמוך בגרסת מקור לניסיון, StorageAccessAPIBeyondCookies, כדי להפעיל את התוסף המוצע ל-Storage Access API (תואם לאחור) כדי לאפשר גישה לאחסון שלא מחולק למחיצות (קובצי cookie ולא קובצי cookie) בהקשר של צד שלישי.

מכניקה

אפשר להשתמש בממשק ה-API באופן הבא (JavaScript פועל ב-iframe מוטמע):

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

אם רוצים גישה ספציפית ל-API ולא גישה ל-all, אפשר להעביר רק את השמות של כינויי ה-API שדרושים לך. לדוגמה, אפשר להעביר את {sessionStorage: true} כדי לקבל גישה רק לאחסון בסשנים, או להעביר את {indexedDB: true, locks:true} כדי לקבל גישה ל-IndexedDB ולנעולי אינטרנט.

מעבר לקריאה לתוסף הנוסף הזה, הגישה לאחסון ללא קובצי cookie תתאים לדרישות הנוכחיות לגבי גישה לקובצי cookie דרך Storage Access API. לדוגמה, ב-Chrome לא מוצגת הודעה כשהמקורות נמצאים באותה קבוצת אתרים קשורים (RWS, השם החדש של 'דומיינים של צד ראשון'). מקורות שהם לא חלק מאותו RWS יהיו כפופים לדרישות השליחה של Storage Access API ב-Chrome.

משך

גרסת המקור לניסיון תהיה זמינה מ-Chrome 120 עד גרסה 125 של Chrome (או אחרי 6 באוגוסט 2024 בכל ציון דרך).

היקף

רק DOM Storage (סשן ואחסון מקומי), Indexed DB ומנעולי אינטרנט זמינים ב-Chrome 120.

האחסון המטמון, מערכת הקבצים הפרטיים המקורית, מכסה, אחסון Blob וערוץ שידור נוספו ב-Chrome 121.

עובדים משותפים והשליטה על הכללת קובצי cookie נוספו בגרסה 123 של Chrome.

עובדים ייעודיים יורשים גישה לקובצי cookie ללא חלוקה למחיצות אם בוצעה קריאה ל-requestStorageAccess לפני שהעובד נוצר ב-Chrome 120 (לא נדרש שימוש בכינוי Storage Access API).

השתתף

  1. עליך להעריך את אופן השימוש שלך בקובצי cookie ובאחסון שאינו קובצי cookie בהקשר של צד שלישי. התרחישים לדוגמה יכולים לעזור לכם להבין אם ההצעה הזו מתאימה לצרכים שלכם.
  2. מפעילים את Chrome בגרסה 120 (ואילך) ומוודאים שהסימון test-third-party-cookie-phaseout מופעל.
  3. אם רוצים לבדוק את התכונה באופן מקומי בלי להגדיר קודם אסימון מקור לניסיון, אפשר להפעיל את #enable-experimental-web-platform-features בדפדפן.
    1. בסיום הבדיקה המקומית, אפשר להירשם לגרסת המקור לניסיון של StorageAccessAPIBeyondCookies ולקבל אסימון לדומיינים שלך. הוראות מפורטות יותר זמינות במאמר תחילת העבודה עם גרסאות מקור לניסיון. המדריך לפתרון בעיות בגרסאות מקור של Chrome כולל רשימת משימות מלאה שתעזור לכם לוודא שהאסימון מוגדר כראוי.
    2. ניתן להטמיע את אסימון המקור לניסיון ב-iframe שבו צריך להשתמש בכינוי Storage Access API בתוכו, באמצעות כותרת HTTP, מטא תג של HTML, או באופן פרוגרמטי. הערה: האסימון צריך להיות מוטמע בכל מסגרת שבה רוצים להשתמש ב-API הזה. הטמעה שלו במסגרת ההורה לא תפעיל את ה-API במסגרות צאצא.
  4. צריך להפעיל את document.requestStorageAccess(...) כדי לקבל את הכינוי Storage Access API ב-iframe של אתרים שונים. אפשר לעיין במסמכי התיעוד של Storage Access API כדי להבין מהן הדרישות להפעלת הקריאה הזו.
  5. מעבירים את האחסון שקשור ל-iframe כדי להשתמש בכינוי Storage Access API אם הוא זמין. לדוגמה, שיחות אל window.sessionStorage.setItem(...) הופכות ל-handle.sessionStorage.setItem(...).
  6. פותחים את האתר ומוודאים שנקודת האחיזה לגישה לאחסון פועלת כמו שצריך.
  7. כדי להפסיק את ההשתתפות בגרסת המקור לניסיון, מסירים את האסימון שהוספתם בשלב 3.
  8. אם נתקלתם בבעיות, שולחים משוב או מעלים בעיות למאגר GitHub של Storage Access API Non-Cookie Storage.

הדגמה: שימוש ב-Storage Access API כדי לגשת לאחסון מקומי ללא חלוקה למחיצות

ההדגמה הבאה מראה איך לגשת לערוצי שידור ללא חלוקה למחיצות מ-iframe של צד שלישי באמצעות Storage Access API:

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

לצורך ההדגמה, נדרש דפדפן Chrome בגרסה 121 ומעלה והסימון test-third-party-cookie-phaseout מופעל.

מקורות מידע נוספים