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. Interfejsy API, których dotyczy problem, są nie tylko izolowane przez zasadę dotyczącą tego samego źródła, ale również przez witrynę z kontekstu 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 najwyższego poziomu) i przywrócić wcześniejsze działanie interfejsów API miejsca na dane, usług i komunikacji w ramach treści osadzionych w witrynie. Ten okres próbny wycofania zakończy się wraz z opublikowaniem Chrome 127 3 września 2024 r. Pamiętaj, że jest to oddzielna funkcja 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 funkcja dotyczy tylko dostępu do miejsca na dane.

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

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 ich potrzebom, i upewnić się, że są gotowi przed zakończeniem okresu próbnego.

Informacje o wersji próbnej origin

Od wersji Chrome 120 Chrome będzie obsługiwać wersję próbną origin StorageAccessAPIBeyondCookies, aby umożliwić proponowane rozszerzenie interfejsu Storage Access API (zgodność wsteczną) w celu umożliwienia dostępu do pamięci bez partycji (plików cookie i innych niż pliki cookie) w kontekście innych firm.

Mechanika

Interfejs API może być używany w następujący sposób (JavaScript uruchomiony w umieszczonym elemencie 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 określonego interfejsu API, a nie do all, możesz przekazać nazwy tylko potrzebnych nicków interfejsu API. Możesz na przykład przekazać ciąg {sessionStorage: true}, aby uzyskać dostęp tylko do pamięci sesji, lub {indexedDB: true, locks:true}, aby uzyskać dostęp do IndexedDB i Web Lock.

Poza wywołaniem tego dodatkowego rozszerzenia dostęp do pamięci innej niż pliki cookie będzie odpowiadał obecnym wymaganiom dotyczącym dostępu do plików cookie przez interfejs Storage Access API. Na przykład w Chrome pytanie nie jest wyświetlane, jeśli źródła znajdują się w tym samym zestawie powiązanych witryn (RWS, nowa nazwa zestawów własnych). Źródła, które nie są częścią tego samego RWS, będą podlegać wymaganiom związanym z prośbami o potwierdzenie interfejsu Storage Access API w Chrome.

Czas trwania

Testowanie origin będzie dostępne od Chrome 120 do wersji Chrome 125 (lub po 6 sierpnia 2024 roku w dowolnym kamieniu milowym).

Zakres

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

W Chrome 121 dodaliśmy funkcje Cache Storage, Origin Private File System, Limit, Blob Storage oraz Channel Broadcast.

W Chrome 123 dodaliśmy funkcje współdzielonych pracowników oraz kontrolę nad wstawianiem plików cookie.

Dedykowane instancje robocze dziedziczą dostęp do bezpartycjonowanych plików cookie, jeśli funkcja requestStorageAccess została wywołana przed utworzeniem instancji roboczej w Chrome 120 (nie jest to wymagane przy użyciu uchwytu Storage Access API).

Twój udział

  1. Oceń sposób, w jaki wykorzystujesz pliki cookie i inne pliki cookie w kontekście firm zewnętrznych. Przykładowe przypadki użycia mogą pomóc Ci w określeniu, 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ć tę funkcję lokalnie bez uprzedniego skonfigurowania tokena próbnego origin, możesz włączyć #enable-experimental-web-platform-features w przeglądarce.
    1. Po zakończeniu testów lokalnych możesz register do wersji próbnej origin StorageAccessAPIBeyondCookies i uzyskać token dla swoich domen. Więcej szczegółowych instrukcji znajdziesz w artykule Pierwsze kroki z testami pochodzenia. Przewodnik dotyczący rozwiązywania problemów z testami origin Chrome zawiera pełną listę kontrolną, która pozwala sprawdzić, czy token jest prawidłowo skonfigurowany.
    2. Umieść token próbny źródła w elemencie iframe, w którym chcesz używać uchwytu interfejsu Storage Access API, za pomocą nagłówka HTTP, metatagu HTML lub automatycznie. 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. Przenieś pamięć powiązaną z elementem iframe, aby używać uchwytu Storage Access API, jeśli jest 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 uchwyt dostępu do pamięci działa prawidłowo.
  7. Aby zrezygnować z udziału w testowaniu origin, usuń token dodany w kroku 3.
  8. Prześlij opinię lub zgłoś napotkane problemy do repozytorium Storage Access API do przechowywania plików innych niż pliki cookie na GitHubie.

Prezentacja: korzystanie z interfejsu Storage Access API w celu uzyskania dostępu do bezpartycjonowanej 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