Расширение Firefox для закрытия окна Firefox - PullRequest
5 голосов
/ 30 января 2012

Я разрабатываю расширение Firefox и хочу иметь возможность закрыть само окно Firefox (без подтверждения).Например, я хочу закрыть окно Firefox, если был загружен определенный URL.Открыть / закрыть вкладку легко с помощью gBrowser, а как насчет закрытия окна Firefox?

Спасибо

Ответы [ 2 ]

4 голосов
/ 31 января 2012

Чтобы выйти из Firefox

Components
  .classes['@mozilla.org/toolkit/app-startup;1']
  .getService(Components.interfaces.nsIAppStartup)
  .quit(Components.interfaces.nsIAppStartup.eAttemptQuit)




Для перезапуска Firefox

var boot = Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(Components.interfaces.nsIAppStartup);
boot.quit(Components.interfaces.nsIAppStartup.eForceQuit|Components.interfaces.nsIAppStartup.eRestart);




Дополнительные полезные флаги

eConsiderQuit : попытка выйти, если все окна закрыты.
eAttemptQuit : попробуйте закрыть все окна, а затем закройте его, если оно будет успешным. eForceQuit : закройте все окна и закройте их.
eRestart : перезапустите приложение после выхода. Приложение будет перезапущено с тем же профилем и пустой командной строкой.

1 голос
/ 30 января 2012

Звучит очевидно, но вы используете window.close(), чтобы закрыть окно XUL.Что касается предупреждения, возможно, лучше всего временно переключить предпочтение browser.tabs.warnOnClose на false.Примерно так должно работать:

Components.utils.import("resource://gre/modules/Services.jsm");

var prefName = "browser.tabs.warnOnClose";
var restorePref = false;
if (Services.prefs.getBoolPref(prefName))
{
  Services.prefs.setBoolPref(prefName, false);
  restorePref = true;
}

window.close();

if (restorePref)
  Services.prefs.setBoolPref(prefName, true);
...