« Windows Vista のバックアップと復元センター | Babelzilla の WTS で全ローカライズの進捗が100%と誤認識される問題 » |
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 以降
FUEL の extIApplication インタフェースに追加された 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();
[…] SCRAPBLOG : Firefox を再起動する (tags: firefox) […]