Я запускаю браузер Chrome с распакованным расширением, которое я написал. Это расширение связывается с Native Host, который я написал на C #, всякий раз, когда открываются новые вкладки.
Я хочу обрабатывать только те вкладки, которые были открыты в браузере Chrome, который я начал с распакованным расширением. Однако, если я запускаю Chrome, используя параметр командной строки с моим расширением, и позже запускаю другой экземпляр Chrome вручную без командной строки, у него также будет загружено расширение. Поэтому мне нужен способ идентифицировать экземпляр браузера, который я явно запустил с расширением.
Я добавил обратный вызов к
chrome.webNavigation.onCreatedNavigationTarget.addListener
, чтобы получать события при открытии новых вкладок. Это работает как шарм. Одним из параметров, которые я получаю из Chrome, является sourceProcessId , который описывается как: Идентификатор процесса, который запускает средство визуализации для исходного кадра.
Моя идея заключалась в том,определить и отправить идентификатор процесса экземпляра Chrome моему собственному хосту при вызове
chrome.runtime.onInstalled
, поскольку это событие выполняется только для первого экземпляра браузера, запущенного с расширением.
Однако я не могу найти свойство, функцию или обратный вызов для получения этого идентификатора процесса из других источников, кроме события
chrome.webNavigation.onCreatedNavigationTarget.addListener
. Я знаю о пространстве имен chrome.processes , но для меня это не вариант, поскольку он не является частью какого-либо стабильного выпуска.
У вас есть предложения?