diff options
author | teramako | 2013-04-03 21:18:22 +0900 |
---|---|---|
committer | teramako | 2013-04-03 21:18:22 +0900 |
commit | 604b2aff3749f93c7efe9a691558b40d82003c64 (patch) | |
tree | 70fdfdfda78d2e1744a2d91c6189d317d2e7c94c | |
parent | 631a3e024d7d46cd3075d6685505f98b71ebd7f5 (diff) | |
download | vimperator-plugins-604b2aff3749f93c7efe9a691558b40d82003c64.tar.bz2 |
dont create new tab
-rw-r--r-- | unload-tab.js | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/unload-tab.js b/unload-tab.js index f4c4b6f..1bee8f4 100644 --- a/unload-tab.js +++ b/unload-tab.js @@ -5,7 +5,7 @@ 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> @@ -25,20 +25,22 @@ if (!("SS" in this)) { } 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", |