アドオンで Firefox を再起動し、再起動時に事前定義された Web ページを表示したいです。
経由でブラウザを再起動すると、表示しnsIAppStartup.quit()
ていたすべてのタブが再起動後に再び開かれます。再起動する前にすべてのタブを閉じることで手動でこれに対処しようとしましたが (以下のコードを参照)、すべてのタブが閉じていることを視覚的に確認できますが、再起動後に再び表示されることがわかりました。
再起動後に、いくつかのセッション復元メカニズムがそれらを再作成していると思います。「SessionStore」( 、 など) に関するいくつかの設定を見つけましbrowser.sessionstore.max_tabs_undo
たbrowser.sessionstore.resume_from_crash
が、それらを切り替えても、この問題の解決には役立たないようです。
再起動後に古いタブを確実に閉じるにはどうすればよいですか? ありがとうございました!
// get gBrowser reference
var mainWindow = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("navigator:browser");
var gBrowser = mainWindow.gBrowser;
// build a collection of tabs to close
var tabsToClose = [];
for( var i = 0; i < gBrowser.mTabContainer.childNodes.length - 1; i++ ){
tabsToClose.push( gBrowser.mTabContainer.childNodes[i] );
}
// Open homepage in new tab
gBrowser.addTab(DEFAULT_HOMEPAGE);
// Close all tabs except for homepage
for( var i = 0; i < tabsToClose.length; i++ ){
gBrowser.removeTab( tabsToClose[i] );
}
// restart browser
Cc["@mozilla.org/toolkit/app-startup;1"].getService(nsIAppStartup).quit(nsIAppStartup.eRestart | nsIAppStartup.eAttemptQuit);