1
0
mirror of https://github.com/XFox111/TabsAsideExtension.git synced 2026-04-22 07:58:01 +03:00

Minor 1.4 (#16)

- Added ability to disable tabs loading on restoring (#10)
- Extension optimization
- Added "Contributors" page link
- Updated README.md

Co-authored-by: Amine A. <15179425+AmineI@users.noreply.github.com>
Co-Authored-By: Michael Gordeev <michael@xfox111.net>
This commit is contained in:
Michael Gordeev
2020-06-27 12:56:54 +03:00
committed by GitHub
parent 2b83f3bd60
commit cb45f1a7b3
6 changed files with 74 additions and 90 deletions
+1
View File
@@ -11,6 +11,7 @@
[![Twitter Follow](https://img.shields.io/twitter/follow/xfox111?style=social)](https://twitter.com/xfox111)
[![GitHub followers](https://img.shields.io/github/followers/xfox111?label=Follow%20@xfox111&style=social)](https://github.com/xfox111)
[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-%40xfox111-orange)](https://buymeacoffee.com/xfox111)
![Tabs aside](https://xfox111.net/images/TabsAside.png)
+5 -4
View File
@@ -31,12 +31,13 @@
<button title="Options">&#xE10C;</button>
<nav>
<!-- <p>
<input type="checkbox" id="discardOnRestore" oncha/>
<label for="discardOnRestore">Load tabs on restore</label>
</p> -->
<p>
<input type="checkbox" id="loadOnRestore"/>
<label for="loadOnRestore">Load tabs on restore</label>
</p>
<div>
<button value="https://github.com/xfox111/ChromiumTabsAside">Visit GitHub page</button>
<button value="https://github.com/XFox111/ChromiumTabsAside/graphs/contributors">Project contributors</button>
<button value="https://chrome.google.com/webstore/detail/tabs-aside/mgmjbodjgijnebfgohlnjkegdpbdjgin">Leave feedback</button>
<button value="https://buymeacoffee.com/xfox111">Buy me a coffee!</button>
<!-- <button hidden>Backup saved tabs</button> -->
+5 -4
View File
@@ -6,12 +6,13 @@
<button title="Options">&#xE10C;</button>
<nav>
<!-- <p>
<input type="checkbox" id="discardOnRestore"/>
<label for="discardOnRestore">Load tabs on restore</label>
</p> -->
<p>
<input type="checkbox" id="loadOnRestore"/>
<label for="loadOnRestore">Load tabs on restore</label>
</p>
<div>
<button value="https://github.com/xfox111/ChromiumTabsAside">Visit GitHub page</button>
<button value="https://github.com/XFox111/ChromiumTabsAside/graphs/contributors">Project contributors</button>
<button value="https://chrome.google.com/webstore/detail/tabs-aside/mgmjbodjgijnebfgohlnjkegdpbdjgin">Leave feedback</button>
<button value="https://buymeacoffee.com/xfox111">Buy me a coffee!</button>
<!--<button hidden>Backup saved tabs</button>-->
+32 -28
View File
@@ -39,24 +39,26 @@ else
document.querySelector("nav > p > small").textContent = chrome.runtime.getManifest()["version"];
/* var loadOnRestoreCheckbox = document.querySelector("nav > p > input[type=checkbox]");
chrome.runtime.sendMessage(
{
command: "getDiscardOption"
},
function(loadOnRestore)
{
loadOnRestoreCheckbox.checked = loadOnRestore;
}
var loadOnRestoreCheckbox = document.querySelector("nav > p > input[type=checkbox]");
chrome.storage.sync.get({ "loadOnRestore": false },
values => loadOnRestoreCheckbox.checked = values.loadOnRestore
);
chrome.storage.onChanged.addListener(function (changes, namespace) {
if (namespace == 'sync'){
for (key in changes) {
if (key === 'loadOnRestore') {
loadOnRestoreCheckbox.checked = changes[key].newValue
}
}
}
});
loadOnRestoreCheckbox.addEventListener("click", function ()
{
chrome.runtime.sendMessage(
chrome.storage.sync.set(
{
command: "toggleDiscard"
}
);
}); */
"loadOnRestore": loadOnRestoreCheckbox.checked
});
});
document.querySelectorAll(".tabsAside.pane > header nav button").forEach(i =>
{
@@ -120,24 +122,26 @@ function InitializeStandalone()
document.querySelector("nav > p > small").textContent = chrome.runtime.getManifest()["version"];
/* var loadOnRestoreCheckbox = document.querySelector("nav > p > input[type=checkbox]");
chrome.runtime.sendMessage(
{
command: "getDiscardOption"
},
function(loadOnRestore)
{
loadOnRestoreCheckbox.checked = loadOnRestore;
}
var loadOnRestoreCheckbox = document.querySelector("nav > p > input[type=checkbox]");
chrome.storage.sync.get({ "loadOnRestore": false },
values => loadOnRestoreCheckbox.checked = values.loadOnRestore
);
chrome.storage.onChanged.addListener(function (changes, namespace) {
if (namespace == 'sync'){
for (key in changes) {
if (key === 'loadOnRestore') {
loadOnRestoreCheckbox.checked = changes[key].newValue
}
}
}
});
loadOnRestoreCheckbox.addEventListener("click", function ()
{
chrome.runtime.sendMessage(
chrome.storage.sync.set(
{
command: "toggleDiscard"
}
);
}); */
"loadOnRestore": loadOnRestoreCheckbox.checked
});
});
document.querySelectorAll(".tabsAside.pane > header nav button").forEach(i =>
{
+28 -52
View File
@@ -37,25 +37,22 @@ chrome.browserAction.onClicked.addListener(function (tab)
chrome.tabs.create({
url: chrome.extension.getURL("TabsAside.html"),
active: true
});
},
chrome.tabs.onActivated.addListener(function TabsAsideCloser(activeInfo) {
chrome.tabs.query({ url: chrome.extension.getURL("TabsAside.html") }, function (result) {
if (result.length)
setTimeout(function () {
result.forEach(i => {
if (activeInfo.tabId != i.id)
chrome.tabs.remove(i.id);
});
}, 200);
else chrome.tabs.onActivated.removeListener(TabsAsideCloser);
});
}));
}
});
chrome.tabs.onActivated.addListener(function (activeInfo)
{
chrome.tabs.query({ url: chrome.extension.getURL("TabsAside.html") }, function (result)
{
if (result.length)
setTimeout(function ()
{
result.forEach(i =>
{
if (activeInfo.tabId != i.id)
chrome.tabs.remove(i.id);
});
}, 200);
});
});
function UpdateTheme()
{
@@ -146,35 +143,14 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse)
case "share":
ShareTabs(message.collectionIndex);
break;
case "toggleDiscard":
if (localStorage.getItem("loadOnRestore") == "true")
localStorage.setItem("loadOnRestore", false);
else
localStorage.setItem("loadOnRestore", true);
break;
case "getDiscardOption":
sendResponse(localStorage.getItem("loadOnRestore") == "false" ? false : true);
break;
}
});
UpdateTheme();
chrome.windows.onCreated.addListener(UpdateTheme);
chrome.windows.onRemoved.addListener(UpdateTheme);
chrome.windows.onFocusChanged.addListener(UpdateTheme);
chrome.tabs.onUpdated.addListener(UpdateTheme);
chrome.tabs.onCreated.addListener(UpdateTheme);
chrome.tabs.onMoved.addListener(UpdateTheme);
chrome.tabs.onSelectionChanged.addListener(UpdateTheme);
chrome.tabs.onActiveChanged.addListener(UpdateTheme);
chrome.tabs.onActivated.addListener(UpdateTheme);
chrome.tabs.onHighlightChanged.addListener(UpdateTheme);
chrome.tabs.onHighlighted.addListener(UpdateTheme);
chrome.tabs.onDetached.addListener(UpdateTheme);
chrome.tabs.onAttached.addListener(UpdateTheme);
chrome.tabs.onRemoved.addListener(UpdateTheme);
chrome.tabs.onReplaced.addListener(UpdateTheme);
function SaveCollection()
{
@@ -215,9 +191,9 @@ function SaveCollection()
chrome.tabs.create({}, function(tab) { newTabId = tab.id; });
chrome.tabs.remove(rawTabs.filter(i => !i.url.startsWith("chrome-extension") && !i.url.endsWith("TabsAside.html") && !i.pinned && i.id != newTabId).map(tab => tab.id));
});
UpdateTheme();
UpdateTheme();
});
}
function DeleteCollection(collectionIndex)
@@ -236,20 +212,20 @@ function RestoreCollection(collectionIndex, removeCollection)
{
url: i,
active: false
}/* , function (tab)
} , function (createdTab)
{
if (localStorage.getItem("loadOnRestore") == "false" ? true : false)
{
setTimeout(function()
{
chrome.tabs.get(tab.id, function(tab1)
{
console.log(tab.url);
chrome.tabs.discard(tab1.id);
chrome.storage.sync.get({ "loadOnRestore" : false }, values => {
if (!values.loadOnRestore)
chrome.tabs.onUpdated.addListener(function discarder(updatedTabId, changeInfo, updatedTab) {
if (updatedTabId === createdTab.id) {
chrome.tabs.onUpdated.removeListener(discarder);
if (!updatedTab.active) {
chrome.tabs.discard(updatedTabId);
}
}
});
}, 1000);
}
} */);
});
});
});
if (!removeCollection)
@@ -349,4 +325,4 @@ function AppendThumbnail(tabId, cahngeInfo, tab)
);
}
chrome.tabs.onUpdated.addListener(AppendThumbnail);
chrome.tabs.onUpdated.addListener(AppendThumbnail);
+3 -2
View File
@@ -1,6 +1,6 @@
{
"name": "Tabs Aside",
"version": "1.3.1",
"version": "1.4",
"manifest_version": 2,
"description": "Classic Microsoft Edge \"Tabs Aside\" feature for Chromium browsers",
"author": "Michael \"XFox\" Gordeev",
@@ -8,6 +8,7 @@
[
"tabs",
"unlimitedStorage",
"storage",
"<all_urls>"
],
@@ -24,6 +25,6 @@
"background":
{
"scripts": [ "js/background.js" ],
"persistent": true
"persistent": false
}
}