我正在研究使用C ++本机主机的Chrome扩展程序。在background.js脚本(永久设置为false)中,使用chrome.onstartup事件,我创建了与C ++主机的连接。
我希望我的主机在用户一直在使用Chrome的情况下一直运行。
如果我关闭所有当前的Chrome选项卡,则独立的Chrome进程仍会显示在任务管理器的“背景”部分(包括必须明确终止的“我的主机”进程)。
我了解用户可以将Chrome配置为不运行后台进程,但是我可以设计扩展程序以在用户关闭所有Chrome标签时杀死主机进程(断开端口)吗?
此外,如果禁用扩展程序,问题将变得更加严重。主机进程在后台变为独立的进程。如果再次启用该扩展程序,则杀死所有已处理的Chrome并重启Chrome(因为我的扩展程序在启动Chrome时连接到Host),我将有多个Host进程。
答案 0 :(得分:0)
Chrome终止或您的扩展程序卸载后,它将向您的本地消息传递主机发送-1
消息。假设您的本机消息传递主机是用C ++编写的,那么您将必须检查该值,这是您应该执行的操作:
int read_char = ::getchar();
if (read_char == -1) {
// Do termination work here...
}