aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorteramako2013-04-03 21:18:22 +0900
committerteramako2013-04-03 21:18:22 +0900
commit604b2aff3749f93c7efe9a691558b40d82003c64 (patch)
tree70fdfdfda78d2e1744a2d91c6189d317d2e7c94c
parent631a3e024d7d46cd3075d6685505f98b71ebd7f5 (diff)
downloadvimperator-plugins-604b2aff3749f93c7efe9a691558b40d82003c64.tar.bz2
dont create new tab
-rw-r--r--unload-tab.js32
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",