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.

Podzielone 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ą popiny podzielone na części?

Pamięć każdego podzielonego popina jest podzielona na partycje według tego, kto go otworzył. 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 uwierzytelniania bez podziału.
  4. Treści third-party.example osadzone w witrynie opener.example nie mają dostępu do własnych plików cookie najwyższego poziomu zapisanych w witrynie third-party.example, gdy zostały one przedstawione w kontekście witryny z własnymi plikami cookie. 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 domeny „third-party.example” jest osadzony w domenie „opener.example”, a domena „third-party.example” jest otwierana 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 zestawu plików cookie bez partycji 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 otwarty w wydzielonym wyskakującym okienku, pamięć jest podzielona na partycje za pomocą opener.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 otwierania wyskakujących okienek z oddzielonymi plikami cookie: element iframe third-party.example umieszczony w witrynie opener.example ma dostęp do własnego oddzielonego pliku cookie w kontekście najwyższego poziomu wyskakującego okna 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 okienko otwierające i wyskakujące są powiązane:

  • Gdy użytkownik przełączy się na inną kartę, wyskakujące okienko automatycznie stanie się niewidoczne i niedostępne. Podobnie jak modal jest widoczny 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 popinów: element iframe umieszczony na stronie otwierającej może mieć dostęp do miejsca na dane w popinie.

Wypróbuj

W Chrome 132 wprowadzamy wersję próbną dla deweloperów funkcji podzielonych 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 otwierającej.
  • Umieszczona treść. Wypróbuj podzielone okienka, aby wyświetlać dodatkowe treści z widżetu innej firmy, takie jak okno ustawień, obraz lub plik PDF (lub inne treści, które są zwykle ładowane w wyskakującym okienku), renderowane w większym oknie. W takim 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, jak poprawić wrażenia 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?
  • Jak przydatna jest według Ciebie ta funkcja?
  • 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.