Firefox を再起動する

Firefox 3 以前

Firefox を再起動するとき、 Firefox 3 までは以下のようなコードを書く必要があった。

var appStartup = Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup);
appStartup.quit(appStartup.eRestart | appStartup.eAttemptQuit);

ただし、上記コードでは Firefox 終了直前に「開いているタブを保存して次回起動時に復元しますか?」の確認ダイアログを表示する設定になっていた場合などに、ダイアログを表示せずに強制的に終了してしまう欠点がある。そのような場合でもちゃんとダイアログを表示させるようにするためには、 chrome://mozapps/content/extensions/extensions.js の restartApp 関数のように少々長いコードを書く必要があった。

Firefox 3.5 以降

FUELextIApplication インタフェースに追加された restart メソッドで実現可能となった。

Application.restart();

Application 定数が未定義の JS XPCOM 内では、以下のようにする。

var fuelApp = Cc["@mozilla.org/fuel/application;1"].getService(Ci.fuelIApplication);
fuelApp.restart();

また、 restart メソッドの戻り値で、実際に再起動の処理を開始するか、あるいはユーザによってキャンセルされたかを判別可能。

var ret = Application.restart();
alert(ret ? "再起動します。" : "再起動はユーザによってキャンセルされました。");

なお、 Firefox を終了する処理についても、 FUEL で実現可能となった。

Application.quit();

TOP

1 Comment to “Firefox を再起動する”

[…] SCRAPBLOG : Firefox を再起動する (tags: firefox) […]

TOP

TOP