问候!
我目前正在将一个网络浏览器插件从Win32移植到MacOSX。该插件的一个特性是,在加载插件时,它会生成一个独立的进程作为插件的“引擎”,并在插件窗口中执行绘图操作(具体来说,通过将OpenGL上下文附加到父进程的窗口并在该上下文中执行OpenGL渲染命令)。我们这样做是因为插件通常作为浏览器进程中的线程加载,因此插件中的崩溃会导致整个浏览器崩溃。通过把“重活”分配到一个单独的进程中并保持插件代码非常精简,我们可以保护用户免受此类崩溃的影响。
我想保留这种子进程渲染器架构在MacOSX上,但我听说过一个恶意谣言(与Google Chrome网络浏览器有关),即MacOSX不允许一个进程将其窗口交给另一个进程处理。我自己在这个领域的搜索结果并不确定;如果有人对此问题有任何了解,并可以提供一些如何实现此目标的建议或更具决定性的“无法实现”的答案,那将非常有帮助。
感谢您的帮助!