我正在开发一个使用C++原生主机的Chrome扩展。在background.js脚本(持久设置为false)中,使用chrome.onstartup事件创建到C++主机的连接。
我希望只要用户正在使用Chrome,我的主机就会一直运行。
如果我关闭所有当前的Chrome选项卡,独立的Chrome进程仍然出现在任务管理器的“后台”部分(包括必须显式终止的我的主机进程)。
我知道用户可以配置Chrome不运行后台进程,但我可以设计我的扩展来在用户关闭所有Chrome选项卡时杀死主机进程(断开端口)吗?
此外,如果我禁用扩展,问题会变得更加严重。主机进程在后台变成一个分离的进程。如果再次启用扩展,杀死所有Chrome进程并重新启动Chrome (因为我的扩展在启动Chrome时连接到主机),我将有多个主机进程。
发布于 2019-03-13 23:49:42
当Chrome终止或你的扩展被卸载时,它会向你的本地消息主机发送-1消息。您将必须检查该值,假设您的本机消息传递主机是用C++编写的,那么您应该这样做:
int read_char = ::getchar();
if (read_char == -1) {
// Do termination work here...
}https://stackoverflow.com/questions/55079220
复制相似问题