Я разрабатываю расширение для всех браузеров.Для Firefox мы решили использовать объект NSISessionStore с методом setTabValue().
setTabValue()
Как решить ту же проблему в расширениях Safari и Google Chrome?
В Safari: у вас есть объект вкладки, например:
var myTab = safari.application.activeBrowserWindow.activeTab;
Что я делаю, если хочу сохранить значение для этой вкладки, просто:
myTab.something = someValue;
Вы можете сделать что-то подобное в Chrome.
В Chrome у каждой вкладки есть идентификатор, поэтому вы можете использовать его в качестве ключа.
В Safari вы можете идентифицировать вкладки, используя SafariBrowserTab объект в качестве ключа.
SafariBrowserTab