Mozilla Flux

Mozilla関係の情報に特化したブログです。

プラグインの別プロセス化が開始 動作はかなり不安定

Electrolysis第一弾 プラグインの別プロセス化が早ければ今週にもTrunkに』の続報である。Another 朝顔日記Scene Side B新秀の介の日記などで既報だが、Minefield(3.7a1pre)にElectrolysisプロジェクトの成果が取り込まれ、プラグインの別プロセス化機能(out-of-process plugins:OOPP)の実装が始まった。

デフォルトではオフになっており、about:configから設定画面を呼び出して、dom.ipc.plugins.enabledをtrueに設定してから使うことになる。この状態で、プラグインを呼び出すWebページを閲覧すると、Windows版では、通常のfirefox.exeに加えて、mozilla-runtime.exeが起動する。プラグインのプロセスは後者が扱っているらしい。

しかし、全体の動作はかなり不安定である。Flashプラグインは、動く場合と動かない場合があり、たとえばページに埋め込まれた広告や、YouTubeの動画は閲覧できるが、ニコニコ動画では再生ボタンを押した時点でMinefieldが暴走状態に突入。タスクマネージャからプロセスの削除を余儀なくされる。しかも、mozilla-runtime.exeを終了させただけではfirefox.exeが残ってしまうため、再起動ができない。必ずfirefox.exeを終了させる必要がある(このときはmozilla-runtime.exeも消える)。

なお、Flashプラグインが動く場合でも、若干コンテンツ表示のパフォーマンスは低下しているように感じた。

他方で、JavaプラグインやAdobe Readerプラグインを読み込む際は、確実にクラッシュする(少なくとも筆者の環境では)。java.comにアクセスしただけでMinefieldが落ちるのには参った。他のWebブラウザでみると、トップページでJavaプラグインは起動しないのだが、実際には何か関係があるのだろう。

というわけで、一言でいえば、実用に耐えない。開発者も当然そのことはわかっていて、”Bug 531142 – Tracking: turn on OOPP by default”には「blocking1.9.3: beta1」のフラグが立てられている。つまり、計画では、Firefox 3.7開発版の二つ目のマイルストーンで、オンの状態がデフォルトになる予定だ。それまでは、オンにして使う際、文字どおりMinefieldが地雷原になることを覚悟しておくべし。

(09/12/19追記)
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.3a1pre) Gecko/20091218 Minefield/3.7a1pre ID:20091218043634

JavaプラグインとAdobe Readerプラグインは読み込み時に落ちることがなくなった。ニコニコ動画はあいかわらず再生しようとすると本体がフリーズする。

種類の異なるプラグインを読み込めるようになったことで判明したが、利用中のプラグインの数だけmozilla-runtime.exeが起動する。つまり、プラグイン単位でプロセスが割り当てられているのだ。そうしておかないと、FlashプラグインのバグのせいでAdobe Readerプラグインが巻き込まれて落ちるといった理不尽なことになるから、考えてみればあたりまえの話だが、一部とはいえFirefoxの「マルチプロセス」を目にするのは感慨深い。