Firefox NPAPI 插件似乎在 Mac OSX(在 10.6 和 10.7 上测试)VMware 虚拟机中被破坏。有谁知道为什么,或者有一个解决方法的想法 - 例如检测用户何时运行 Firefox/OSX/VM?
语境:
- 仅当 FF && OSX && VM 时,我的插件才会消耗 100% 的 CPU。但是,该插件仍然可以使用。这始终是可重现的,并且发生在多个 VM 上。
- Adobe Reader、Adobe Flash 和我使用 Firebreath(教程)构建的一个测试插件在这个环境中也都被破坏了。
- Firefox 在控制台中输出以下日志消息:“无效像素格式”和“无效上下文”。可能与 OpenGL 有关 - 请参阅错误报告。
运行 glxinfo 命令会给出类似的错误:
cb-sea-miniosx64-03:~ seabld$ glxinfo name of display: /tmp/launch-LojaDe/:0 Thu Jul 5 20:13:51 cb-sea-miniosx64-03.comm-build.scl1.mozilla.com glxinfo[1009 <Error>: unknown error code: invalid pixel format Thu Jul 5 20:13:51 cb-sea-miniosx64-03.comm-build.scl1.mozilla.com glxinfo[1009] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged. X Error of failed request: GLXBadContext Major opcode of failed request: 0 () Serial number of failed request: 16 Current serial number in output stream: 16
- Instruments 分析器报告了我的插件在 IOSurfaceCreate/IOSurfaceClientCreate 上花费的大量时间。如果我理解正确,浏览器使用 IOSurface 与插件共享渲染数据。
- 使用 Activity Monitor 获取的样本似乎没有任何有用的信息 - 除了 CPU 问题出在主线程 (DispatchQueue) 中。
- 一种解决方法是在 32 位模式下运行 Firefox:右键单击 FF 应用程序 > 获取信息 > 在 32 位模式下打开。但我们不能指望用户这样做。