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:
@@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
[](https://twitter.com/xfox111)
|
[](https://twitter.com/xfox111)
|
||||||
[](https://github.com/xfox111)
|
[](https://github.com/xfox111)
|
||||||
|
[](https://buymeacoffee.com/xfox111)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
+5
-4
@@ -31,12 +31,13 @@
|
|||||||
<button title="Options"></button>
|
<button title="Options"></button>
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
<!-- <p>
|
<p>
|
||||||
<input type="checkbox" id="discardOnRestore" oncha/>
|
<input type="checkbox" id="loadOnRestore"/>
|
||||||
<label for="discardOnRestore">Load tabs on restore</label>
|
<label for="loadOnRestore">Load tabs on restore</label>
|
||||||
</p> -->
|
</p>
|
||||||
<div>
|
<div>
|
||||||
<button value="https://github.com/xfox111/ChromiumTabsAside">Visit GitHub page</button>
|
<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://chrome.google.com/webstore/detail/tabs-aside/mgmjbodjgijnebfgohlnjkegdpbdjgin">Leave feedback</button>
|
||||||
<button value="https://buymeacoffee.com/xfox111">Buy me a coffee!</button>
|
<button value="https://buymeacoffee.com/xfox111">Buy me a coffee!</button>
|
||||||
<!-- <button hidden>Backup saved tabs</button> -->
|
<!-- <button hidden>Backup saved tabs</button> -->
|
||||||
|
|||||||
+5
-4
@@ -6,12 +6,13 @@
|
|||||||
<button title="Options"></button>
|
<button title="Options"></button>
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
<!-- <p>
|
<p>
|
||||||
<input type="checkbox" id="discardOnRestore"/>
|
<input type="checkbox" id="loadOnRestore"/>
|
||||||
<label for="discardOnRestore">Load tabs on restore</label>
|
<label for="loadOnRestore">Load tabs on restore</label>
|
||||||
</p> -->
|
</p>
|
||||||
<div>
|
<div>
|
||||||
<button value="https://github.com/xfox111/ChromiumTabsAside">Visit GitHub page</button>
|
<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://chrome.google.com/webstore/detail/tabs-aside/mgmjbodjgijnebfgohlnjkegdpbdjgin">Leave feedback</button>
|
||||||
<button value="https://buymeacoffee.com/xfox111">Buy me a coffee!</button>
|
<button value="https://buymeacoffee.com/xfox111">Buy me a coffee!</button>
|
||||||
<!--<button hidden>Backup saved tabs</button>-->
|
<!--<button hidden>Backup saved tabs</button>-->
|
||||||
|
|||||||
+32
-28
@@ -39,24 +39,26 @@ else
|
|||||||
|
|
||||||
document.querySelector("nav > p > small").textContent = chrome.runtime.getManifest()["version"];
|
document.querySelector("nav > p > small").textContent = chrome.runtime.getManifest()["version"];
|
||||||
|
|
||||||
/* var loadOnRestoreCheckbox = document.querySelector("nav > p > input[type=checkbox]");
|
var loadOnRestoreCheckbox = document.querySelector("nav > p > input[type=checkbox]");
|
||||||
chrome.runtime.sendMessage(
|
chrome.storage.sync.get({ "loadOnRestore": false },
|
||||||
{
|
values => loadOnRestoreCheckbox.checked = values.loadOnRestore
|
||||||
command: "getDiscardOption"
|
|
||||||
},
|
|
||||||
function(loadOnRestore)
|
|
||||||
{
|
|
||||||
loadOnRestoreCheckbox.checked = 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 ()
|
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 =>
|
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"];
|
document.querySelector("nav > p > small").textContent = chrome.runtime.getManifest()["version"];
|
||||||
|
|
||||||
/* var loadOnRestoreCheckbox = document.querySelector("nav > p > input[type=checkbox]");
|
var loadOnRestoreCheckbox = document.querySelector("nav > p > input[type=checkbox]");
|
||||||
chrome.runtime.sendMessage(
|
chrome.storage.sync.get({ "loadOnRestore": false },
|
||||||
{
|
values => loadOnRestoreCheckbox.checked = values.loadOnRestore
|
||||||
command: "getDiscardOption"
|
|
||||||
},
|
|
||||||
function(loadOnRestore)
|
|
||||||
{
|
|
||||||
loadOnRestoreCheckbox.checked = 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 ()
|
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 =>
|
document.querySelectorAll(".tabsAside.pane > header nav button").forEach(i =>
|
||||||
{
|
{
|
||||||
|
|||||||
+28
-52
@@ -37,25 +37,22 @@ chrome.browserAction.onClicked.addListener(function (tab)
|
|||||||
chrome.tabs.create({
|
chrome.tabs.create({
|
||||||
url: chrome.extension.getURL("TabsAside.html"),
|
url: chrome.extension.getURL("TabsAside.html"),
|
||||||
active: true
|
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()
|
function UpdateTheme()
|
||||||
{
|
{
|
||||||
@@ -146,35 +143,14 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse)
|
|||||||
case "share":
|
case "share":
|
||||||
ShareTabs(message.collectionIndex);
|
ShareTabs(message.collectionIndex);
|
||||||
break;
|
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();
|
UpdateTheme();
|
||||||
chrome.windows.onCreated.addListener(UpdateTheme);
|
|
||||||
chrome.windows.onRemoved.addListener(UpdateTheme);
|
|
||||||
chrome.windows.onFocusChanged.addListener(UpdateTheme);
|
chrome.windows.onFocusChanged.addListener(UpdateTheme);
|
||||||
|
|
||||||
chrome.tabs.onUpdated.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.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()
|
function SaveCollection()
|
||||||
{
|
{
|
||||||
@@ -215,9 +191,9 @@ function SaveCollection()
|
|||||||
chrome.tabs.create({}, function(tab) { newTabId = tab.id; });
|
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));
|
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)
|
function DeleteCollection(collectionIndex)
|
||||||
@@ -236,20 +212,20 @@ function RestoreCollection(collectionIndex, removeCollection)
|
|||||||
{
|
{
|
||||||
url: i,
|
url: i,
|
||||||
active: false
|
active: false
|
||||||
}/* , function (tab)
|
} , function (createdTab)
|
||||||
{
|
{
|
||||||
if (localStorage.getItem("loadOnRestore") == "false" ? true : false)
|
chrome.storage.sync.get({ "loadOnRestore" : false }, values => {
|
||||||
{
|
if (!values.loadOnRestore)
|
||||||
setTimeout(function()
|
chrome.tabs.onUpdated.addListener(function discarder(updatedTabId, changeInfo, updatedTab) {
|
||||||
{
|
if (updatedTabId === createdTab.id) {
|
||||||
chrome.tabs.get(tab.id, function(tab1)
|
chrome.tabs.onUpdated.removeListener(discarder);
|
||||||
{
|
if (!updatedTab.active) {
|
||||||
console.log(tab.url);
|
chrome.tabs.discard(updatedTabId);
|
||||||
chrome.tabs.discard(tab1.id);
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}, 1000);
|
});
|
||||||
}
|
});
|
||||||
} */);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!removeCollection)
|
if (!removeCollection)
|
||||||
@@ -349,4 +325,4 @@ function AppendThumbnail(tabId, cahngeInfo, tab)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
chrome.tabs.onUpdated.addListener(AppendThumbnail);
|
chrome.tabs.onUpdated.addListener(AppendThumbnail);
|
||||||
|
|||||||
+3
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "Tabs Aside",
|
"name": "Tabs Aside",
|
||||||
"version": "1.3.1",
|
"version": "1.4",
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"description": "Classic Microsoft Edge \"Tabs Aside\" feature for Chromium browsers",
|
"description": "Classic Microsoft Edge \"Tabs Aside\" feature for Chromium browsers",
|
||||||
"author": "Michael \"XFox\" Gordeev",
|
"author": "Michael \"XFox\" Gordeev",
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
[
|
[
|
||||||
"tabs",
|
"tabs",
|
||||||
"unlimitedStorage",
|
"unlimitedStorage",
|
||||||
|
"storage",
|
||||||
"<all_urls>"
|
"<all_urls>"
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -24,6 +25,6 @@
|
|||||||
"background":
|
"background":
|
||||||
{
|
{
|
||||||
"scripts": [ "js/background.js" ],
|
"scripts": [ "js/background.js" ],
|
||||||
"persistent": true
|
"persistent": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user