+
diff --git a/js/aside-script.js b/js/aside-script.js
index d944be8..fe38e87 100644
--- a/js/aside-script.js
+++ b/js/aside-script.js
@@ -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 =>
{
diff --git a/js/background.js b/js/background.js
index 7688391..a562fc0 100644
--- a/js/background.js
+++ b/js/background.js
@@ -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);
\ No newline at end of file
+chrome.tabs.onUpdated.addListener(AppendThumbnail);
diff --git a/manifest.json b/manifest.json
index 12e122f..2f3e1a9 100644
--- a/manifest.json
+++ b/manifest.json
@@ -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",
"
"
],
@@ -24,6 +25,6 @@
"background":
{
"scripts": [ "js/background.js" ],
- "persistent": true
+ "persistent": false
}
}
\ No newline at end of file