diff options
author | teramako | 2013-04-10 22:14:28 +0900 |
---|---|---|
committer | teramako | 2013-04-10 22:14:28 +0900 |
commit | 596ae3e9f228d34891f8e52225205e78371b4828 (patch) | |
tree | 3e8338fb8c47c07be169a227a5112bab78b7ceba /unload-tab.js | |
parent | 004f9e2fd284912c3b70401310e118493c7fa8d3 (diff) | |
parent | 8eb425bbdb21e37603603db84d444c90a2d30fb5 (diff) | |
download | vimperator-plugins-596ae3e9f228d34891f8e52225205e78371b4828.tar.bz2 |
Merge branch '3.6'
Diffstat (limited to 'unload-tab.js')
-rw-r--r-- | unload-tab.js | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/unload-tab.js b/unload-tab.js index 951c2b9..1bee8f4 100644 --- a/unload-tab.js +++ b/unload-tab.js @@ -3,9 +3,9 @@ * unload[tab] num */ -var INFO = +var INFO = xml` <plugin name="unloadTab" - version="0.2" + version="0.3" summary="Unload tab contents like (BarTab)" xmlns="http://vimperator.org/namespaces/liberator"> <author email="teramako@gmail.com">teramako</author> @@ -18,27 +18,29 @@ var INFO = <p>Unload the tab contents.</p> </description> </item> -</plugin>; +</plugin>`; 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); + var browser = aTab.linkedBrowser, + state = SS.getTabState(aTab), + shistory = browser.sessionHistory, + icon = aTab.getAttribute("image"); + + browser.addEventListener("load", function onload(){ + this.removeEventListener("load", onload, true); + if (shistory.count > 1) + shistory.PurgeHistory(shistory.count -1); + + aTab.ownerDocument.defaultView.setTimeout(function(){ + aTab.setAttribute("image", icon); + }, 0); + SS.setTabState(aTab, state); + }, true); + browser.loadURI("about:blank"); } commands.addUserCommand(["unload[tab]"], "Unload Tabs", |