Trwałe unikalne identyfikatory kart Chrome, które trwają między sesjami przeglądarki

Próbuję ustalić jakiś sposób na ustalenie unikalnego identyfikatora dla kart Chrome, który spełnia następujące warunki:

Unikalnie identyfikuje każdą kartęPozostaje taki sam dla danej karty między ponownymi uruchomieniami przeglądarki (karty przywracane w sesji)Pozostaje bez zmian, jeśli karta zostanie zamknięta, a następnie ponownie otwarta za pomocą karty Cofnij zamkniętą kartę (Ctrl + Shift + T)Pozostaje odrębny, jeśli karta jest zduplikowana

Zrobiłem dość agresywne badania, aby znaleźć kompleksowe rozwiązanie, ale nic nie wydaje się wystarczające. Oto metody, które wypróbowałem w rosnącej kolejności skuteczności:

Użyj udostępnionego w Chrome pliku tab.id: nie utrzymuje się między sesjami przeglądarki lub zamknij / cofnij zamknięcieUmieść identyfikator GUID w plikach cookie: nie jest unikalny dla każdej karty, tylko dla domeny / adresu URLUmieść GUID w localStorage: utrzymuje się między sesjami przeglądarki i zamykaniem / cofaniem-zamykaniem, ale nie jest unikalna dla każdej karty, tylko dla domenyUmieść GUID w sessionStorage: unikatowy dla każdej karty, utrzymuje się przez zamknięcie / cofnięcie zamknięcia, unikalny dla zduplikowanych kart, ale jest wymazywany między sesjami przeglądarkiUżyj identyfikowalnych atrybutów dokumentów stron internetowych jako unikalnego klucza: to najlepsze podejście do tej pory. Klucz można skonstruować za pomocą skryptu treści z następujących wartości:[location.href, document.referrer, history.length].

Jeśli chodzi o to ostatnie podejście, skonstruowany klucz jest unikalny na wszystkich kartach, które mają wspólną długość URL, odsyłacza i historii. Te wartości pozostaną takie same dla danej zakładki między ponownym uruchomieniem przeglądarki / przywracaniem sesji a zamknięciem / cofnięciem zamknięcia. Chociaż ten klucz jest „dość” wyjątkowy, istnieją przypadki, w których jest on niejednoznaczny: na przykład 3 nowe karty otwartehttp://www.google.com wszystkie miałyby ten sam klucz wspólny (a tego typu rzeczy zdarzają się dość często w praktyce).

Metodę „umieść GUID w sessionStorage” można dodatkowo wykorzystać do ujednoznacznienia wielu kart z tym samym skonstruowanym kluczem do przypadków zamykania / cofania i duplikowania kart podczas bieżącej sesji przeglądarki. Ale to nie rozwiązuje problemu niejednoznaczności między ponownymi uruchomieniami przeglądarki.

Ta ostatnia niejednoznaczność może zostać częściowo złagodzona podczas przywracania sesji, obserwując, które zakładki Chrome otwierają się razem, w których oknach, i ekstrapolując dla danego niejednoznacznego klucza, która zakładka należy do tego okna w oparciu o obecność oczekiwanych kart „rodzeństwa” (nagranych podczas poprzedniej przeglądarki) sesja). Jak można sobie wyobrazić, wdrożenie tego rozwiązania jest dość skomplikowane i dość podejrzane. I może ujednoznacznić tylko te same klawisze, które Chrome przywraca do różnych okien. Dzięki temu karty z kluczem identycznym, przywracane do tego samego okna, są niejednoznacznie niejednoznaczne.

Czy jest lepszy sposób? Gwarantowany unikalny, generowany przez przeglądarkę identyfikator GUID dla poszczególnych kart, który utrzymuje się między ponownymi uruchomieniami przeglądarki (przywracanie sesji) i zamykanie / cofanie zamknięcia byłoby idealne, ale jak dotąd nie znalazłem czegoś takiego.

questionAnswers(3)

yourAnswerToTheQuestion