Weź udział w okresie próbnym wycofywania niepartycji miejsca na dane innej firmy, mechanizmów Service Worker i interfejsów API komunikacji

Od Chrome 115 interfejsy API pamięci masowej, mechanizmów Service Worker i interfejsów komunikacyjnych są partycje w kontekście rozwiązań zewnętrznych. Interfejsy API, których dotyczy problem, nie tylko są izolowane przez zasadę dotyczącą tego samego źródła, ale też używane w kontekstach innych firm, które są rozdzielone przez witrynę 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 rozpocząć izolację (kontynuować izolację za pomocą 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 w treściach umieszczonych w witrynie.

Oprócz ogólnego, niepartycjonowanego okresu próbnego możesz wziąć udział w specjalnym okresie próbnym wycofywania tylko w window.sessionStorage. Okres próbny jest dostępny, ponieważ w niektórych witrynach trzeba przeprowadzić migrację procesu Firebase signInWithRedirect. Więcej informacji o tej migracji znajdziesz w artykule Sprawdzone metody korzystania z funkcji signInWithRedirect w przeglądarkach, które blokują dostęp do pamięci masowej innych firm.

Aby dać deweloperom więcej czasu na dostosowanie się do nowej implementacji partycjonowania miejsca na dane, testy wycofywania będą dostępne do momentu opublikowania Chrome 127, które jest zaplanowane na 23 lipca 2024 r. Okres próbny wycofywania dla użytkowników Chrome w wersjach od 111 do 126 zakończy się 3 września 2024 r.

Dostępne wersje próbne wycofania

Od wersji Chrome 115 dostępne są 2 wersje próbne wycofywania:

  1. DisableThirdPartyStoragePartitioning: umożliwia witrynie najwyższego poziomu podział na partycje (tymczasowe usunięcie izolacji według witryny najwyższego poziomu) w pamięci masowej, skryptach service worker i interfejsach API komunikacyjnych w treściach innych firm umieszczonych na stronach.
  2. DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning: pozwala witrynie na rozdzielanie partycji (sessionStorage) według elementów nawigacyjnych.

Poniżej znajdziesz omówienie procesu wycofywania wersji próbnej oraz informacje o tym, czego możesz się spodziewać. Jeśli podczas tego okresu próbnego chcesz podzielić się z nami opinią lub napotkasz jakieś problemy, skontaktuj się z nami w repozytorium Partitioned Storage Deprecation próbnym na GitHubie.

DisableThirdPartyStoragePartitioning

Jeśli zarejestrujesz witrynę najwyższego poziomu w ramach okresu próbnego wycofywania DisableThirdPartyStoragePartitioning, te interfejsy API pozostaną bez partycji: interfejsy Storage API (np. localStorage, sessionStorage, IndexedDB, Limit i inne), interfejsy do komunikacji (np. BroadcastChannel, SharedWorkers i WebLocks) oraz ServiceWorker API.

Przykład:

Diagram partycjonowania miejsca na dane

Bardziej szczegółowe wyjaśnienia znajdziesz w opisie projektu.

DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning

Jeśli zarejestrujesz się w programie próbnym wycofywania DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning, przejście karty do zarejestrowanego źródła spowoduje, że wszystkie elementy iframe tego samego źródła pochodzące z innych witryn pozostaną bez partycjonowania tylko w przypadku usługi Window.sessionStorage i przez cały okres jej istnienia. O ile test wycofania DisableThirdPartyStoragePartitioning wpływa na wszystkie konteksty innych firm umieszczone w zarejestrowanym źródle, ale test wycofania DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning powoduje zarejestrowanie danego źródła w celu uzyskania bezpartycjonowanego dostępu po umieszczeniu w kontekstach innych firm.

Przykład:

Diagram partycjonowania miejsca na dane po ogólnym partycjonowaniu.

Co to oznacza dla programistów stron internetowych?

Witryny powinny kontrolować wykorzystanie niepartycjonowanego miejsca na dane, mechanizmów Service Worker i interfejsów API do komunikacji w kontekstach innych firm oraz w razie potrzeby przygotować się na partycjonowanie przez firmę zewnętrzną przed zakończeniem okresu próbnego wycofania. Chcemy zakończyć okres próbny wycofywania wraz z opublikowaniem Chrome 127 3 września 2024 roku.

Aby nakazać przeglądarce podział pamięci na partycje w treściach innych firm umieszczonych na stronach, witryny najwyższego poziomu muszą zarejestrować się w przypadku co najmniej 1 testu wycofania i dodać odpowiednie tokeny próbne do nagłówków odpowiedzi HTTP (patrz szczegółowy przykład poniżej).

Każda wersja próbna wycofywania jest dostępna w systemach Windows, Mac, Linux, Chrome OS i Android.

Weź udział w testach funkcji wycofywania

Poniżej znajdziesz krótkie omówienie tego, jak wziąć udział w jednym lub obu z tych okresów próbnych. Bardziej szczegółowe instrukcje znajdziesz w artykule Pierwsze kroki z testami origin.

  1. Uruchom Chrome w wersji 115 (lub nowszej) i upewnij się, że włączona jest flaga ThirdPartyStoragePartitioning.
  2. Sprawdź, czy działanie treści osób trzecich umieszczonych w Twojej witrynie najwyższego poziomu jest uszkodzone w wyniku partycjonowania miejsca na dane (w przeciwnym razie nie musisz brać udziału w testach wycofania).
  3. Zarejestruj się, aby skorzystać z okresu próbnego wycofywania, i uzyskaj token dla swoich domen, odwiedzając tę stronę:
    1. W przypadku witryny najwyższego poziomu, która obejmuje partycjonowanie pamięci masowej, mechanizmy Service Worker i interfejsy API do komunikacji w umieszczonej treści firmy zewnętrznej: DisableThirdPartyStoragePartitioning
    2. W przypadku witryny najwyższego poziomu do wyodrębnienia sesji do przechowywania danych na potrzeby nawigacji między elementami nawigacyjnymi: DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
  4. Dodaj do swojej strony token wersji próbnej origin:
    1. W okresie próbnym DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning możesz dodać element Origin-Trial: <DEPRECATION TRIAL TOKEN> do nagłówka odpowiedzi HTTP witryny najwyższego poziomu, gdzie <DEPRECATION TRIAL TOKEN> zawiera token uzyskany podczas rejestracji w programie testowania wycofywania. Możesz to również zrobić za pomocą kodu HTML każdy film w Twojej mapie witryny ma zdefiniowany tytuł.
    2. W przypadku wersji próbnej DisableThirdPartyStoragePartitioning token należy przekazać za pomocą tagu HTML <meta> wstrzykiwanego przez JavaScript. Metoda nagłówka HTTP nie jest obsługiwana.
  5. Załaduj witrynę w przeglądarce Chrome 115 (lub nowszej) z włączonym dodatkiem ThirdPartyStoragePartitioning i sprawdź, czy problemy związane z partycjonowaniem zostały prawidłowo rozwiązane.
  6. Aby przestać uczestniczyć w okresie próbnym wycofywania, po prostu usuń token dodany w kroku 2.

Okres próbny wycofania DisableThirdPartyStoragePartitioning obsługuje funkcję testowania origin innych firm, ale skrypt innej firmy wstrzykujący token musi zostać oceniony w ramce najwyższego poziomu, zanim zostanie załadowany element iframe innej firmy, w którym nie zastosowano partycjonowania. Wersja próbna wycofywania DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning nie obejmuje testów origin innych firm, ponieważ w pewnym momencie od momentu założenia danej karty użytkownik musi znajdować się w witrynie najwyższego poziomu. 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.

Podziel się opinią

Jeśli napotkasz jakieś problemy lub opinie, prześlij je do repozytorium GitHub umożliwiającego wycofanie partycjonowanej pamięci masowej.