/* * タブを削除せずに、セッションを残しつつコンテンツをアンロードさせるエコなコマンド * unload[tab] num */ var INFO = teramako MPL 1.1/GPL 2.0/LGPL 2.1 :unloadtab :unload :unloadtab tabNumber

Unload the tab contents.

; if (!("SS" in this)) { XPCOMUtils.defineLazyServiceGetter(this, "SS", "@mozilla.org/browser/sessionstore;1", "nsISessionStore"); } function unloadTab (aTab) { var state = SS.getTabState(aTab); var tab = gBrowser.addTab(null, { skipAnimation: true }); SS.setTabState(tab, state); if (aTab.pinned) { gBrowser.pinTab(tab); } else { let objState = JSON.parse(state); if (objState.hidden) { gBrowser.hideTab(tab); TabView.moveTabTo(tab, JSON.parse(objState.extData["tabview-tab"]).groupID); } } gBrowser.moveTabTo(tab, aTab._tPos + 1) gBrowser.removeTab(aTab); } commands.addUserCommand(["unload[tab]"], "Unload Tabs", function action (args) { var str = args[0]; var m = str.match(/^(\d+):?/); if (!m) return; var tab = gBrowser.tabs[m[1]]; if (tab && !tab.selected && !tab.linkedBrowser.__SS_restoreState) unloadTab(tab); }, { literal: 0, completer: function (context, args) { context.anchored = false; context.completions = [ [tab._tPos + ": " + tab.label, tab.linkedBrowser.currentURI.spec] for each(tab in Array.slice(gBrowser.tabs)) if (!tab.selected && !tab.linkedBrowser.__SS_restoreState) ]; } }, true);