【问题标题】:Shutdown firefox but on next launch, one time restore session关闭 Firefox,但在下次启动时,一次恢复会话
【发布时间】:2015-06-01 16:04:03
【问题描述】:

在 Firefox 中,如果您重新启动它,它会尽可能地恢复相同的会话。它在不更改“启动时恢复会话”的首选项的情况下执行此操作。有没有办法让插件在 Firefox 上做到这一点?我需要关闭它,但在下次启动时它应该恢复会话。我需要在不改变以下偏好的情况下这样做:

我的用户单击了一个按钮,将 Aurora/firefox.exe 重新启动到 Nigtly/firefox.exe,所以我正在尝试完成此操作。

【问题讨论】:

    标签: firefox-addon


    【解决方案1】:
    var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"]
                     .getService(Components.interfaces.nsIAppStartup);
    appStartup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart);
    

    请参阅https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAppStartup#Constants 了解其他一些与重启相关的选项。

    【讨论】:

    • 感谢幸运的人,但这不允许我们更改 exe 路径?原谅我应该把最后一句话移到主题标题。
    • 这就是我如何重新启动一个会话:var cancelQuit = Cc['@mozilla.org/supports-PRBool;1'].createInstance(Ci.nsISupportsPRBool); Services.obs.notifyObservers(cancelQuit, 'quit-application-requested', null); if (!cancelQuit.data) { Services.obs.notifyObservers(null, 'quit-application-granted', null); Services.startup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart); } 但这实际上会重新启动。我需要它来标记要恢复的所有内容,然后我想退出应用程序并在此配置文件中启动另一个 exe 并全部恢复
    • 啊,是的,对不起,我误解了在你的最后一行从 Aurora 切换到 Nightly。我现在看到你想启动一个不同的应用程序而不是现有的应用程序,所以它看起来不像 nsIAppStartup 可以提供帮助。你有在两个应用程序中运行的代码吗?如果是这样,您可以在新应用程序启动后将“启动时恢复会话”首选项设置回其原始设置吗?
    • 谢谢@Luckyrat!好吧,这是个好主意,是的,它的配置文件相同,所以我的插件存在。但是他可能会重新启动进入安全模式,在这种情况下我的插件将被禁用:(
    猜你喜欢
    • 2014-09-05
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多