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