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://github.com/xfox111)
|
||||
[](https://buymeacoffee.com/xfox111)
|
||||
|
||||

|
||||
|
||||
|
||||
+5
-4
@@ -31,12 +31,13 @@
|
||||
<button title="Options"></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
@@ -6,12 +6,13 @@
|
||||
<button title="Options"></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
@@ -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
@@ -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
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user