2010-04-21 81 views
1

首先,這是我第一次嘗試編寫加載項。話雖如此,我正在嘗試編寫一個附加組件,它會進行一些配置更改並需要重新啓動Firefox才能使更改生效。我目前正在重新啓動Firefox中使用下面的代碼:Firefox-Addon:重新啓動並保存所有當前標籤頁和窗口

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

的問題是,它會重新啓動並打開任何用戶的主頁目前設置爲瀏覽器窗口(或多個)。我希望它重新打開之前在重新啓動之前打開的所有窗口/選項卡(類似於安裝新插件時發生的情況)。

有人曾經與這種類型的功能混淆過嗎?

+0

安裝插件後通常不會提示用戶重新啓動嗎? – BenV 2010-04-21 21:22:42

+0

也許我沒有正確解釋自己。運行後,我的插件需要重新啓動,類似於安裝插件時的插件。當我重新啓動Firefox時,我想保存窗口和標籤頁。 – nokturnal 2010-04-22 12:50:11

回答

1

如果你的目標是Firefox 3 +,你可以試試FUEL Application.restart()函數。它可能只是調用您已經嘗試過的相同的底層代碼,但值得一試。

https://developer.mozilla.org/en/Toolkit_API/extIApplication#restart.28.29

您可能也有興趣在監測的喜好(也許它可以刪除一個重啓的需要):

https://developer.mozilla.org/en/Code_snippets/Preferences#Using_preference_observers

不要使用燃油偏好觀察家 - 我剛發現它們間歇性地失敗(https://bugzilla.mozilla.org/show_bug.cgi?id=488587),所以改用XPCOM觀察者。

相關問題