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 miejsca na dane, mechanizmach Service Worker i interfejsach API do komunikacji przez partycjonowanie w kontekście zewnętrznym. 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.

Witryny, które nie miały czasu na wdrożenie obsługi partycjonowania pamięci na potrzeby podmiotów zewnętrznych, mogą skorzystać z okresu próbnego wycofywania, aby tymczasowo przestać partycjonować (kontynuować izolację przy użyciu zasad dotyczących tego samego źródła, ale usunąć izolację według witryny najwyższego poziomu) oraz przywrócić wcześniejszy sposób działania miejsca na dane, mechanizmów Service Worker i interfejsów API do komunikacji w treści umieszczonej na stronie. Ten okres próbny wycofania zakończy się wraz z opublikowaniem Chrome 127 3 września 2024 r. Pamiętaj, że jest to niezależne od okresu próbnego wycofywania w przypadku dostępu do plików cookie innych firm: dotyczy to tylko dostępu do miejsca na dane.

Jako długoterminowe rozwiązanie mające na celu rozwiązanie niektórych przypadków użycia zakłóconych przez partycjonowanie pamięci masowej przez firmę zewnętrzną, Chrome proponuje możliwość wysyłania żądań dostępu do pamięci/komunikacji (zarówno plików cookie, jak i innych) za pomocą interfejsu Storage Access API (dostawa od Chrome 117), który już umożliwia innym firmom wysyłanie próśb o dostęp do plików cookie.

Od wersji Chrome 120 ta oferta pakietowa będzie dostępna do eksperymentów w ramach testowania origin. Deweloperzy powinni wziąć udział w testach origin, aby ocenić, jak proponowane rozwiązanie rozwiązuje ich przypadki użycia i upewnić się, że są przygotowani przed zakończeniem okresu próbnego wycofywania.

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 pamięć DOM Storage (sesja i pamięć lokalna), Indexed DB oraz Web Lock.

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 włączaniem 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 przechowywania plików cookie i innych plików niż pliki cookie w kontekście firm zewnętrznych. Przykładowe przypadki użycia pomogą Ci ustalić, czy oferta pakietowa może dopasować się do Twoich potrzeb.
  2. Uruchom Chrome w wersji 120 lub nowszej i upewnij się, że jest włączona flaga test-third-party-cookie-phaseout.
  3. Jeśli chcesz przetestować tę funkcję lokalnie bez wcześniejszego skonfigurowania tokena próbnego origin, możesz włączyć w przeglądarce #enable-experimental-web-platform-features.
    1. Po zakończeniu testów lokalnych możesz zarejestrować się do wersji próbnej origin StorageAccessAPIBeyondCookies i uzyskać token dla swoich domen. Bardziej szczegółowe instrukcje znajdziesz w artykule Pierwsze kroki z testami origin. 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 być umieszczony w dowolnej ramce, która chce używać tego interfejsu API. Umieszczenie go w ramce nadrzędnej nie spowoduje włączenia interfejsu API w ramkach podrzędnych.
  4. Wywołaj document.requestStorageAccess(...), aby uzyskać uchwyt interfejsu Storage Access API w elemencie iframe z innej witryny. Informacje o wymaganiach warunkujących pomyślne wykonanie 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

Poniższy przykład pokazuje, jak uzyskać dostęp do bezpartycjonowanych kanałów transmisji z elementu iframe innej firmy przy użyciu interfejsu Storage Access API:

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

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

Dodatkowe materiały