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) [![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) [![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) ![Tabs aside](https://xfox111.net/images/TabsAside.png)
+5 -4
View File
@@ -31,12 +31,13 @@
<button title="Options">&#xE10C;</button> <button title="Options">&#xE10C;</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
View File
@@ -6,12 +6,13 @@
<button title="Options">&#xE10C;</button> <button title="Options">&#xE10C;</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
View File
@@ -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 =>
{ {
+22 -46
View File
@@ -37,26 +37,23 @@ 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) {
chrome.tabs.onActivated.addListener(function (activeInfo)
{
chrome.tabs.query({ url: chrome.extension.getURL("TabsAside.html") }, function (result)
{
if (result.length) if (result.length)
setTimeout(function () setTimeout(function () {
{ result.forEach(i => {
result.forEach(i =>
{
if (activeInfo.tabId != i.id) if (activeInfo.tabId != i.id)
chrome.tabs.remove(i.id); chrome.tabs.remove(i.id);
}); });
}, 200); }, 200);
else chrome.tabs.onActivated.removeListener(TabsAsideCloser);
}); });
}));
}
}); });
function UpdateTheme() function UpdateTheme()
{ {
if (window.matchMedia("(prefers-color-scheme: dark)").matches) if (window.matchMedia("(prefers-color-scheme: dark)").matches)
@@ -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)
+3 -2
View File
@@ -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
} }
} }