Mozilla Flux

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

Firefox 34ではシャットダウン時のハングへの対策が強化されている

Windows版Firefoxをいったん終了させ、改めて起動した際、「Firefoxは起動していますが応答しません。新しいウィンドウを開くにはまず既存のFirefoxプロセスを終了させるか、コンピュータを再起動させなければなりません。」というメッセージを目にしたことはないだろうか。終了直前に、たくさんタブを開いていたり、Flashプラグインを利用したコンテンツ(動画など)を閲覧していたりすると、このメッセージを含む「Firefoxの終了」ダイアログを見る率が高いようだ。

f:id:Rockridge:20141201222520p:plain

単にシャットダウン処理が追いついていないだけであれば、少し間を置いてからFirefoxを起動し直せばよい。だが、Firefoxのプロセスがメモリ上に残ったまま、プロファイルがロックされてしまう場合がある。こうなると、上記メッセージのとおり、タスクマネージャーからFirefoxのタスクを終了させるか、PCを再起動させない限り、Firefoxを利用できなくなる。とはいえ、PC初心者にとってタスクマネージャーを利用する敷居は高いし、毎回PCを再起動するのもうっとうしい。

まもなくリリースされるFirefox 34では、「Firefoxの終了」ダイアログからこのゾンビ化したプロセスを終了させられるようになった(Bug 286355)。ダイアログ内に、「Firefoxは起動していますが応答しません。新しいウィンドウを開くには既存のFirefoxプロセスを終了させなければなりません。」というメッセージとともに、「Firefoxの終了」ボタンが表示される。これをクリックすると、応答不能のプロセスは強制終了となり、Firefoxが再起動する。ただし、この機能を利用できるのはWindows Vista以降のみだ。

f:id:Rockridge:20141201222555p:plain

また、Windows版に限らず、Firefox 34ではシャットダウン後に一定時間(初期設定では63秒)を超えてハングした状態が続くときは、強制的にクラッシュが起きるようになった(Bug 1038342)。もう少し厳密にいうと、シャットダウン処理の各ステップの経過時間がこの一定時間を超えると、クリーンアップの処理なしに直ちにプロセスがキルされるのだ。つまり、Firefoxがシャットダウン時にハングしても、ユーザーはしばらく待っていれば再びFirefoxを利用できるようになるわけだ。なお、about:configでtoolkit.asyncshutdown.crash_timeoutの設定を追加し、設定値(ミリ秒単位)を指定すれば、上記の時間を変更することも可能である(最短で3秒)。

いずれも地味ではあるが、シャットダウン時のハングがユーザーをFirefox嫌いにさせている可能性もあることを考えると、意外に重要な機能といえるのではないだろうか。