Partycjonowane okienka: nowe podejście do okienek w przeglądarce w wersji próbnej dla deweloperów

Natalia Markoborodova
Natalia Markoborodova

Od wersji 132 Chrome deweloperzy mogą wziąć udział w testach nowego podejścia do wyskakujących okienek w internecie: partycjonowanych popinów. Ta wersja próbna dla deweloperów jest dostępna tylko na komputerach. Ta funkcja nie jest jeszcze dostępna na urządzeniach z Androidem.

Partycjonowane wyskakujące okienko to nowy typ wyskakującego okienka, który został zaprojektowany z myślą o krótkich interakcjach, takich jak logowanie lub szybkie potwierdzenia. Wczytuje treści internetowe z 2 unikalnymi funkcjami:

Dlaczego potrzebujemy podzielonych wtyczek?

Pop-upy podzielone są zaprojektowane tak, aby zachować właściwości dotyczące prywatności w przypadku podzielonego iframe i właściwości dotyczące bezpieczeństwa w przypadku wyskakujących okienek.

Wraz z rosnącą liczbą użytkowników, którzy korzystają z przeglądania bez plików cookie innych firm, mogą być zakłócane procesy polegające na przechowywaniu danych w wyskakującym okienku w celu późniejszego ich pobrania w kontekście innych firm (np. w celu utrzymania sesji użytkownika w różnych witrynach). Partycjonowane popins mają na celu rozwiązanie tego problemu.

Jak działają podzielone popiny?

Pamięć każdego podzielonego popina jest podzielona na partycje według otwieracza. Partycjonowanie pamięci ogranicza dostęp do danych w różnych witrynach, co zmniejsza ryzyko śledzenia i ataków polegających na wstrzykiwaniu skryptów. Więcej informacji o partycjonowaniu miejsca na dane znajdziesz w dokumentacji.

Weź pod uwagę witrynę opener.example, która umieszcza treści z witryny third-party.example. Aby wyświetlać spersonalizowane treści w opener.example, użytkownik musi się zalogować w third-party.example. Gdy pliki cookie innych firm są zablokowane w przeglądarce użytkownika, aktualny proces wyskakujących okienek wygląda tak:

  1. Użytkownik klika przycisk logowania.
  2. Otworzy się okno.
  3. Użytkownik loguje się z kontekstu najwyższego poziomu third-party.example i zapisany zostaje plik cookie uwierzytelniający bez podziału.
  4. Treści third-party.example osadzone w opener.example nie mają dostępu do własnych plików cookie na najwyższym poziomie zapisanych w third-party.example, gdy zostały one przedstawione w kontekście plików cookie własnego źródła. Dzieje się tak, ponieważ plik cookie uwierzytelniający nie jest podzielony na partycje, a zatem jest plikiem cookie innej firmy.
Proces uwierzytelniania użytkownika w wyskakującym okienku, w którym element iframe z adresu „third-party.example” jest osadzony w adresie „opener.example”, a adres „third-party.example” jest otwierany w wyskakującym okienku. Element iframe nie ma dostępu do własnego niepartycjonowanego pliku cookie, ponieważ został on ustawiony w kontekście najwyższego poziomu w wyskakującym okienku „third-party.example”.
Proces otwierania okna: element iframe third-party.example umieszczony w witrynie opener.example nie ma dostępu do własnego niepartycjonowanego zestawu plików cookie w kontekście najwyższego poziomu okna third-party.example.

Pamięć partycji wyskakującego okienka jest partycjonowana na potrzeby otwieracza. Wprowadziliśmy zmiany w krokach 3–4 procesów:

  1. Użytkownik loguje się z kontekstu najwyższego poziomu third-party.example. Ponieważ jest otwarte w wydzielonym wyskakującym okienku, pamięć jest podzielona na partycje za pomocą elementuopener.example.

  2. Treści third-party.example osadzone w opener.example mają dostęp do własnego pliku cookie, który został ustawiony w wyskakującym okienku, ponieważ korzystają z tego samego partycjonowanego miejsca na dane.

Proces uwierzytelniania użytkownika w wyskakującym okienku. W aplikacji „opener.example” otwiera się wyskakujące okienko z aplikacji „third-party.example”. Element iframe w tym wyskakującym okienku może uzyskiwać dostęp do plików cookie ustawionych przez kontekst najwyższego poziomu „third-party.example”.
Proces obsługi oddzielonych popinów: iframe third-party.example umieszczony w opener.example ma dostęp do własnego oddzielonego pliku cookie ustawionego w kontekście najwyższego poziomu popina third-party.example, ponieważ plik cookie jest podzielony na części według opener.example.

Partycjonowane wyskakujące okienka mają pomóc użytkownikowi zrozumieć, że strona otwierająca i wyskakujące okienko są powiązane:

  • Gdy użytkownik przełączy się na inną kartę, wyskakujące okienko automatycznie stanie się niewidoczne i niedostępne, tak samo jak okno modalne, które jest widoczne tylko wtedy, gdy aktywna jest karta, na której się znajduje.
  • Gdy użytkownik wróci do karty otwierającej, wyskakujące okienko pojawi się ponownie.
  • Użytkownik nie może wprowadzać zmian w pasku adresu przeglądarki w wyskakującym okienku.
Partycjonowanie miejsca na dane za pomocą partycjonowanych wyskakujących okienek: element iframe umieszczony na stronie otwierającej może mieć dostęp do miejsca na dane ustawionego w wyskakującym okienku.

Wypróbuj

W Chrome 132 wprowadzamy wersję próbną dla programistów funkcji partycjonowanych popinów. Oznacza to, że funkcja będzie dostępna za pomocą flagi. Aby spróbować użyć podzielonych popinów:

  1. Upewnij się, że używasz Chrome w wersji 132 lub nowszej.
  2. Otwórz chrome://flags#partitioned-popins i włącz flagę funkcji.
  3. Uruchom ponownie Chrome.
  4. Wypróbuj naszą wersję demonstracyjną.

Używanie w witrynie podzielonych wyskakujących okienek

Aby użyć w swojej witrynie podzielonego popina, wywołaj metodę window.open(), przekazując parametr popin:

window.open("third-party-popin.example", "_blank", "popin");

Prześlij opinię

Testujemy podzielone wyskakujące okienka i zbieramy opinie programistów. Oto kilka potencjalnych scenariuszy użycia:

  • Proces uwierzytelniania użytkownika. Jeśli masz wdrożony niestandardowy proces uwierzytelniania, który odbywa się w innej domenie niż Twoja witryna (np. użytkownicy site.example logują się w domenie auth-site.example), otwórz stronę uwierzytelniania w pop-up, aby użyć pliku cookie sesji na stronie opener.
  • Umieszczona treść. Wypróbuj podzielone okienka, aby wyświetlać dodatkowe treści z widżetu innej firmy, np. okno ustawień, obraz lub plik PDF (lub inne treści, które są zwykle ładowane w wyskakującym okienku), w większym oknie. W tym przypadku wyskakujące okienka z podzielami mają na celu zachowanie stanu sesji użytkownika między widżetem innej firmy a Twoją witryną.

Jeśli w swoich rozwiązaniach uwzględniasz któryś z tych scenariuszy, masz inne przypadki użycia lub chcesz pomóc w rozwoju tej funkcji, wypróbuj ją i daj nam znać:

  • Czy wystąpiły jakieś problemy?
  • Czy masz jakieś sugestie dotyczące zwiększenia wygody użytkowników?
  • Czy masz jakieś sugestie dotyczące ulepszonego interfejsu? Czy w szczególności uważasz, że interfejs wyraźnie wskazuje, że strona otwierająca i wyskakujące okienko są powiązane?
  • Na ile ta funkcja jest według Ciebie przydatna?
  • Czy są inne przypadki użycia, w których chciałbyś/chcesz używać podzielonych popinów?

Aby podzielić się opinią, zgłoś problem na GitHubie.