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 mechanizmy pamięci masowej, mechanizmy Service Worker i komunikacyjne interfejsy API są podzielone w kontekstach innych firm. Interfejsy API używane w kontekście innych firm są izolowane od zasad dotyczących tej samej domeny, a interfejsy API, których dotyczy problem, są dodatkowo oddzielone od kontekstu najwyższego poziomu.

Witryny, które nie miały czasu na wdrożenie obsługi partycjonowania pamięci przez podmioty zewnętrzne, mogą wziąć udział w okresie próbnym wycofywania, aby tymczasowo rozdzielić (nadal izolowane przez zasadę tej samej domeny, ale usunąć izolację przez witrynę najwyższego poziomu) i przywrócić wcześniejsze zachowanie pamięci, mechanizmów Service Worker i komunikacyjnych interfejsów API w treściach umieszczonych w witrynie.

Oprócz przeprowadzenia ogólnego okresu próbnego wycofywania aplikacji window.sessionStorage możesz wziąć udział w specjalnym okresie próbnym wycofywania. Wersja próbna jest dostępna, ponieważ w niektórych witrynach trzeba przenieść proces signInWithRedirect Firebase. Więcej informacji o tej migracji znajdziesz w artykule Sprawdzone metody korzystania z metody signInWithRedirect w przeglądarkach, które blokują dostęp innych firm do pamięci masowej.

Aby dać deweloperom więcej czasu na dostosowanie się do nowej implementacji partycjonowania pamięci, wersje próbne wycofania będą dostępne do momentu opublikowania wersji Chrome 127, która jest planowana na 3 września 2024 roku.

Dostępne okresy próbne wycofywania

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

  1. DisableThirdPartyStoragePartitioning: umożliwia witrynie najwyższego poziomu cofanie partycjonowania (tymczasowo usuwanie izolacji przez witryny najwyższego poziomu) w pamięci, mechanizmach Service Worker i komunikacyjnych interfejsach API w treściach firm zewnętrznych umieszczonych na jej stronach.
  2. DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning: umożliwia witrynie cofanie partycji sessionStorage z różnych elementów nawigacyjnych.

Poniżej znajdziesz omówienie okresu próbnego wycofywania i tego, czego możesz się spodziewać. Jeśli chcesz podzielić się z nami swoją opinią lub napotkasz jakieś problemy podczas tego okresu próbnego, daj nam znać w repozytorium próbnym wycofywania partycji pamięci masowej z GitHub.

DisableThirdPartyStoragePartitioning

Jeśli zarejestrujesz witrynę najwyższego poziomu w ramach okresu próbnego wycofania DisableThirdPartyStoragePartitioning, nie będą miały one partycjonowania w kontekstach innych firm: interfejsy Storage API (np. localStorage, sessionStorage, IndexedDB, Quota itp.), interfejsy API do komunikacji (np. BroadcastChannel, SharedWorkers, WebLocks) i ServiceWorker API.

Przykład:

Schemat partycjonowania pamięci masowej

Bardziej szczegółowe objaśnienie zawiera wyjaśnienie projektu.

DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning

Jeśli zarejestrujesz się w ramach okresu próbnego wycofywania DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning, przejście karty do zarejestrowanego źródła spowoduje, że wszystkie elementy iframe z innych witryn tego samego pochodzenia pozostaną niepartycjonowane tylko przez Window.sessionStorage i tylko przez cały czas istnienia danej karty. Podczas gdy okres próbny wycofania DisableThirdPartyStoragePartitioning ma wpływ na wszystkie konteksty innych firm umieszczone w zarejestrowanych źródłach, ten proces DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning zamiast tego rejestruje dane źródło, aby uzyskać niepartycjonowany dostęp, gdy jest osadzony w kontekście innych firm.

Przykład:

Schemat partycjonowania pamięci masowej po ogólnej parytonizacji.

Co to oznacza dla programistów stron internetowych?

Witryny powinny skontrolować użycie niepartycjonowanych pamięci masowej, mechanizmów Service Worker i komunikacyjnych interfejsów API w kontekście rozwiązań zewnętrznych oraz, w razie potrzeby, przygotować się na partycjonowanie przez podmioty zewnętrzne przed wygaśnięciem okresu próbnego wycofania. Planujemy zakończyć okresy próbne wycofywania wraz z wydaniem Chrome 127 3 września 2024 r.

Aby poinstruować przeglądarkę, że ma ona usunąć partycjonowanie zawartości strony innej firmy umieszczonej na jej stronach, witryny najwyższego poziomu muszą zarejestrować się na co najmniej 1 próbę 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 jest dostępna w systemach Windows, macOS, Linux, Chrome OS i Android.

Weź udział w okresach próbnych wycofywania

Poniżej znajdziesz krótkie omówienie tego, jak wziąć udział w jednym lub obu okresach próbnych wycofania. 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 partycjonowanie pamięci masowej nie zakłóca działania treści osób trzecich umieszczonych w witrynie najwyższego poziomu (jeśli nie, nie musisz brać udziału w okresach próbnych wycofania).
  3. Zarejestruj się, by wziąć udział w okresie próbnym wycofywania i uzyskać token dla swoich domen, odwiedzając stronę:
    1. Aby usunąć partycjonowanie pamięci masowej, mechanizmów Service Worker i komunikacyjnych interfejsów API w witrynie najwyższego poziomu z umieszczonej treści innej firmy: DisableThirdPartyStoragePartitioning
    2. Aby usunąć podział sesji w pamięci podręcznej przez witrynę najwyższego poziomu: DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning
  4. Dodaj do strony token próbny origin:
    1. W okresie próbnym DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning możesz dodać Origin-Trial: <DEPRECATION TRIAL TOKEN> do nagłówka odpowiedzi HTTP witryny najwyższego poziomu, gdzie <DEPRECATION TRIAL TOKEN> zawiera token otrzymany podczas rejestracji w wersji próbnej wycofania. Możesz to też zrobić za pomocą HTML każdy film w Twojej mapie witryny ma zdefiniowany tytuł.
    2. W przypadku wersji próbnej DisableThirdPartyStoragePartitioning token musi zostać podany za pomocą tagu HTML <meta> wstrzykniętego za pomocą JavaScriptu. Metoda nagłówka HTTP nie jest obsługiwana.
  5. Załaduj witrynę w Chrome w wersji 115 (lub nowszej) z włączonym ThirdPartyStoragePartitioning i sprawdź, czy problemy z partycjonowaniem zostały prawidłowo rozwiązane.
  6. Aby przestać korzystać z okresu próbnego wycofywania, po prostu usuń token dodany w kroku 2.

Próba wycofania funkcji DisableThirdPartyStoragePartitioning obsługuje funkcję zewnętrznych prób źródłowych, ale skrypt innej firmy, który wstawia token, musi zostać oceniony w ramce najwyższego poziomu, zanim zostanie wczytany zewnętrzny element iframe, w którym nie zastosowano partycjonowania. Okres próbny wycofania usługi DisableThirdPartySessionStoragePartitioningAfterGeneralPartitioning nie obsługuje zewnętrznych wersji próbnych, ponieważ w okresie ważności danej karty użytkownik musi być w witrynie najwyższego poziomu. Przewodnik na temat 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 problemy lub opinie, prześlij do repozytorium GitHuba z próbną wycofaniem partycji na dane w pamięci masowej.