Закрыть Native Host, когда Chrome закрыт пользователем - PullRequest
0 голосов
/ 09 марта 2019

Я работаю над расширением Chrome, которое использует собственный хост C ++.В сценарии background.js (постоянное значение false), используя событие chrome.onstartup, я создаю соединение с хостом C ++.

Я хочу, чтобы мой хост работал до тех пор, пока пользователь активно использует Chrome.

Если я закрою все свои текущие вкладки Chrome, независимые процессы Chrome по-прежнему будут отображаться в разделе «Фон»диспетчера задач (включая мой процесс хоста, который должен быть явно уничтожен).

Я понял, что пользователь может настроить Chrome так, чтобы он не запускал фоновые процессы, но могу ли я спроектировать свое расширение для уничтожения процесса хоста (отключениепорт), когда пользователь закрывает все вкладки Chrome?

Более того, проблема становится более серьезной, если я отключаю расширение.Процесс Host становится отдельным процессом в фоновом режиме.Если снова включить расширение, убить весь обработанный Chrome и перезапустить Chrome (так как мое расширение подключается к хосту при запуске Chrome), у меня будет несколько процессов хоста.

1 Ответ

0 голосов
/ 13 марта 2019

Когда Chrome завершает работу или ваше расширение выгружается, оно отправит сообщение -1 на ваш собственный узел обмена сообщениями. Вам нужно будет проверить это значение, предполагая, что ваш собственный узел обмена сообщениями написан на C ++, тогда вы должны сделать следующее:

int read_char = ::getchar();
if (read_char == -1) {
// Do termination work here...
}
...