Weź udział w testowaniu origin interfejsu Storage Access API z dostępem do miejsca na dane bez plików cookie

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

W Chrome 115 wprowadzono zmiany w interfejsach API pamięci, usług i komunikacji poprzez partycjonowanie w kontekstach innych firm. Oprócz tego, że są one izolowane przez zasadę dotyczącą tego samego pochodzenia, interfejsy API używane w kontekstach innych firm są też izolowane przez witrynę w kontekście najwyższego poziomu.

W przypadku witryn, które nie miały czasu wdrożyć obsługi partycjonowania miejsca na dane przez podmioty zewnętrzne, można wziąć udział w próbnym wycofaniu, aby tymczasowo wyłączyć partycjonowanie (nadal obowiązuje zasada dotycząca tej samej domeny, ale nie ma już izolacji na poziomie witryny) i przywrócić wcześniejsze działanie interfejsów API miejsca na dane, usług i komunikacji w ramach treści umieszczonych w witrynie. Wycofanie tej wersji próbnej nastąpi wraz z wydaniem Chrome 127 3 września 2024 r. Pamiętaj, że jest to oddzielna usługa od testów związanych z przywróceniem wycofanych plików cookie innych firm, które umożliwiają dostęp do plików cookie innych firm: ta usługa umożliwia tylko dostęp do miejsca na dane.

Jako długoterminowe rozwiązanie umożliwiające pewne przypadki użycia zakłócone przez partycjonowanie pamięci przez inne firmy bez plików cookie, Chrome proponuje możliwość żądania przez inne firmy dostępu do pamięci/komunikacji (zarówno plików cookie, jak i nieplików cookie) za pomocą interfejsu Storage Access API (dostępny od wersji Chrome 117), który umożliwia już żądanie dostępu do plików cookie przez inne firmy.

Od wersji 120 Chrome ta propozycja będzie dostępna do eksperymentowania w ramach testowania origin. Deweloperzy powinni wziąć udział w tym okresie próbnym, aby ocenić, jak proponowane rozwiązanie odpowiada na ich potrzeby, i upewnić się, że są gotowi przed zakończeniem okresu próbnego.

Szczegóły wersji próbnej origin

Począwszy od wersji 120 Chrome będzie obsługiwać testowanie origin, StorageAccessAPIBeyondCookies, aby umożliwić proponowane rozszerzenie interfejsu Storage Access API (obsługującego zgodność wsteczną) o dostęp do niepartycjonowanego miejsca na dane (pliki cookie i inne dane) w kontekście innych firm.

Mechanika

Interfejsu API można używać w ten sposób (JavaScript działa w ramach elementu 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', ...);

Jeśli chcesz uzyskać dostęp tylko do konkretnego interfejsu API, a nie do all, możesz przekazać nazwy tylko tych interfejsów API, których potrzebujesz. Możesz na przykład przekazać wartość {sessionStorage: true}, aby uzyskać dostęp tylko do pamięci sesji, lub wartość {indexedDB: true, locks:true}, aby uzyskać dostęp do IndexedDB i Web Locks.

Oprócz wywołania tego dodatkowego rozszerzenia dostęp do miejsca na dane innego niż pliki cookie będzie zgodny z obecnymi wymaganiami dotyczącymi dostępu do plików cookie za pomocą interfejsu Storage Access API. Na przykład w Chrome nie wyświetla się żadnego prompta, gdy źródła znajdują się w tym samym powiązanym zestawie witryn (RWS, nowa nazwa zestawów źródeł własnych). Źródła, które nie należą do tego samego RWS, będą podlegać wymaganiom wyświetlania promptów w interfejsie Storage Access API w Chrome.

Czas trwania

Wersja próbna origin będzie dostępna od Chrome 120 do Chrome 125 (lub po 6 sierpnia 2024 r. w dowolnym etapie).

Zakres

W Chrome 120 dostępne są tylko DOM Storage (pamięć sesji i lokalna), Indexed DB oraz Web Locks.

Pamięć podręczna, prywatny system plików Origin, limit, Blob Storage i kanał transmisji zostały dodane w Chrome 121.

W Chrome 123 dodano Shared Workers oraz kontrolę nad uwzględnianiem plików cookie.

Wyspecjalizowane procesy robocze dziedziczą dostęp do plików cookie bez partycji, jeśli funkcja requestStorageAccess została wywołana przed utworzeniem procesu roboczego w wersji Chrome 120 (nie wymaga to użycia interfejsu Storage Access API).

Twój udział

  1. Oceń, jak używasz plików cookie i innych metod przechowywania w kontekście innych stron. Przykładowe przypadki użycia mogą pomóc Ci zrozumieć, czy ta propozycja może odpowiadać Twoim potrzebom.
  2. Uruchom Chrome w wersji 120 (lub nowszej) i upewnij się, że włączona jest flaga test-third-party-cookie-phaseout.
  3. Jeśli chcesz przetestować funkcję lokalnie bez wcześniejszego skonfigurowania tokena próbnego pochodzenia, możesz włączyć w przeglądarce #enable-experimental-web-platform-features.
    1. Po zakończeniu testowania lokalnego możesz zarejestrować się w ramach okresu próbnego StorageAccessAPIBeyondCookies i uzyskać token dla swoich domen. Więcej szczegółowych instrukcji znajdziesz w artykule Pierwsze kroki z testami pochodzenia. Przewodnik Rozwiązywanie problemów z testami wersji próbnych Chrome Origin zawiera pełną listę kontrolną, która pomoże Ci sprawdzić, czy token jest prawidłowo skonfigurowany.
    2. Umieść token próbny pochodzenia w ramce iframe, w której chcesz używać interfejsu Storage Access API, za pomocą nagłówka HTTP, metatagu HTML lub programowo. Pamiętaj, że token musi zostać umieszczony w ramce, która ma korzystać z tego interfejsu API. Umieszczenie go w ramce nadrzędnej nie spowoduje włączenia interfejsu API w ramkach podrzędnych.
  4. Wywołaj interfejs API document.requestStorageAccess(...), aby uzyskać identyfikator interfejsu Storage Access API w ramce iframe na wielu stronach. Wymagania dotyczące tego wywołania znajdziesz w dokumentacji interfejsu Storage Access API.
  5. Przekaż miejsce na dane powiązane z iframe, aby używać interfejsu Storage Access API, jeśli jest on dostępny. Na przykład połączenia z numerem window.sessionStorage.setItem(...) zmienią się na handle.sessionStorage.setItem(...).
  6. Otwórz swoją witrynę i sprawdź, czy element sterujący dostępem do pamięci działa prawidłowo.
  7. Aby zrezygnować z testowania wersji źródłowej, usuń token dodany w kroku 3.
  8. Prześlij opinię lub zgłoszenie problemu do repozytorium GitHub interfejsu Storage Access API dla miejsca na dane innego niż pliki cookie.

Demonstracja: korzystanie z interfejsu Storage Access API do uzyskiwania dostępu do niepartycjonowanej pamięci lokalnej

Ten pokaz demonstruje, jak uzyskać dostęp do niepartycjonowanych kanałów transmisji za pomocą interfejsu Storage Access API:

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

Demonstracja wymaga Chrome w wersji 121 lub nowszej z włączoną flagą test-third-party-cookie-phaseout.

Dodatkowe materiały