FirefoxNPAPIプラグインがMacOSX(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)にあることを除いて、有用な情報がないようです。
- 回避策の1つは、Firefoxを32ビットモードで実行することです。FFアプリケーションを右クリックし、[情報を見る]>[32ビットモードで開く]を選択します。しかし、ユーザーがそうすることを期待することはできません。