Постоянный уникальный идентификатор для вкладок Chrome, который сохраняется между сеансами браузера

Я пытаюсь найти способ установить уникальный идентификатор для вкладок Chrome, который удовлетворяет следующим условиям:

Uniquely identifies each tab Stays the same for a given tab between browser restarts (session-restored tabs) Stays the same if a tab is closed and then reopened with Undo Closed Tab (Ctrl+Shift+T) Stays distinct if a tab is duplicated

Я провел довольно агрессивное исследование, чтобы найти исчерпывающее решение, но, похоже, ничего не получилось. Вот методы, которые я попробовал, в порядке возрастания эффективности:

Use Chrome's provided tab.id: does not persist between browser sessions or close/undo-close Put a GUID in cookies: is not unique per tab, only per domain/URL Put a GUID in localStorage: persists between browser sessions and close/undo-close, but is not unique per tab, only per domain Put a GUID in sessionStorage: unique per tab, persists across close/undo-close, unique for duplicated tabs, but is wiped out between browser sessions Use identifiable webpage document attributes as a unique key: this is the best approach I've found so far. A key can be constructed via a content script from the following values: [location.href, document.referrer, history.length].

Что касается этого последнего подхода, созданный ключ является уникальным для всех вкладок, которые имеют общий URL, реферер и длину истории. Эти значения останутся неизменными для данной вкладки между перезапусками браузера / восстановлением сессии и закрытием / отменой закрытия. Хотя этот ключ является "довольно" уникальный, есть случаи, когда это неоднозначно: например, 3 новые вкладки открытыhttp://www.google.com у всех будет один и тот же ключ (и такое часто случается на практике).

& Quot; помещать GUID в sessionStorage & quot; Метод может дополнительно использоваться для устранения неоднозначности между несколькими вкладками с одинаковым сконструированным ключом для случаев закрытия / отмены закрытия и дублирования вкладок во время текущего сеанса браузера. Но это не решает проблему неоднозначности между перезапусками браузера.

Эта последняя неоднозначность может быть частично смягчена во время восстановления сеанса путем наблюдения за тем, какие вкладки Chrome открываются вместе, в каких окнах, и экстраполяции для данного неоднозначного ключа, к какой вкладке принадлежит какое окно, на основе присутствия ожидаемого «родственного элемента». вкладки (записанные во время предыдущего сеанса браузера). Как вы можете себе представить, реализация этого решения довольно сложная и довольно хитрая. И он может различать только вкладки с одинаковыми клавишами, которые Chrome восстанавливает в разных окнах. Это оставляет вкладки с одинаковыми клавишами, которые восстанавливаются в том же окне, как неоднозначно неоднозначные.

Есть ли способ лучше? Гарантированный уникальный генерируемый браузером GUID для каждой вкладки, который сохраняется между перезапусками браузера (восстановлением сеанса) и закрытием / отменой закрытия, был бы идеальным, но до сих пор я не нашел ничего подобного.

Ответы на вопрос(3)

Ваш ответ на вопрос