沙盒插件架构

Ste*_*goo 3 c++ sandbox plugin-architecture

我在谷歌搜索和搜索SO的插件架构,我对如何实现它的一般知识感到满意.现在我进一步寻找沙盒架构.基本上我的意思是带插件的应用程序,插件崩溃不会导致整个应用程序崩溃,插件可以重新加载.我找不到好的文档.我知道Firefox实现它(崩溃的Flash插件不会影响整个FF的东西,可以重新加载)谢谢!

ver*_*lop 8

您可以拥有真正沙盒架构的唯一方法是将插件放入单独的操作系统进程中,并使用单独的内存空间,其中插件无法直接崩溃父应用程序的进程或损坏其内存.执行此操作时,您将需要依赖OS的进程间通信工具(管道,套接字,远程过程调用,内存映射文件,共享内存,同步对象等)来与插件进行交互.

  • 是的,如果插件可以互相交互,那么您可以为所有插件设置一个插件主机进程.它可能会使插件主机的恢复变得更加复杂 - 使用Firefox比较,这意味着如果插件行为异常并取消托管过程,所有使用任何插件的打开页面都会有要以某种方式重置,而不是可能只重置一个页面/插件实例. (2认同)