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

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

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

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

כפתרון לטווח הארוך, לטיפול בתרחישים לדוגמה שחולפים על ידי חלוקה למחיצות (partitioning) באחסון של צד שלישי שלא באמצעות קובצי cookie, דפדפן Chrome מציע לצדדים שלישיים אפשרות לבקש גישה לאחסון/לתקשורת (קובצי cookie וגם ללא קובצי cookie) באמצעות Storage Access API (משלוח החל מ-Chrome 117), שכבר מאפשר לצדדים שלישיים לבקש גישה לקובצי 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 ול-Web Locks.

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

משך הקורס

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

היקף

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

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

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

עובדים ייעודיים יורשים גישה לקובצי 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. אחרי שתסיימו את הבדיקה באופן מקומי, תוכלו register לגרסת המקור לניסיון של 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 של אחסון גישה לאחסון ללא קובצי Cookie.

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

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

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

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

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