From 5adf3cbb66e3d3a5a4117273d286c2332a5abefa Mon Sep 17 00:00:00 2001 From: maximstewart Date: Sat, 20 Feb 2021 03:24:24 -0600 Subject: [PATCH] added free session memory button. --- src/pages/sessionManager.html | 13 +++++++------ src/scripts/background.js | 2 -- src/scripts/events.js | 7 ++++++- src/scripts/session-manager.js | 27 ++++++++++++++++++++++++++- 4 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/pages/sessionManager.html b/src/pages/sessionManager.html index e9608cd..e8e98dd 100755 --- a/src/pages/sessionManager.html +++ b/src/pages/sessionManager.html @@ -21,7 +21,9 @@
  • -


    +

    +
  • +

  • @@ -232,10 +234,9 @@ - - - - - + + + + diff --git a/src/scripts/background.js b/src/scripts/background.js index 1f655ef..aa0be60 100644 --- a/src/scripts/background.js +++ b/src/scripts/background.js @@ -1,6 +1,5 @@ const message2 = "Name too long or none provided; or, unacceptable character used."; const regexp = /^[a-zA-Z0-9-_]+$/; // Alphanumeric, dash, underscore - let data = null; @@ -18,7 +17,6 @@ const processor = () => { if (enteryName.length < 0 || enteryName.length > 54 || enteryName.search(regexp) == -1) { messageWindow("danger", message2, "modal-gutter"); - // prePprocessor(obj, "", message2); return ; } diff --git a/src/scripts/events.js b/src/scripts/events.js index b302650..95c308d 100644 --- a/src/scripts/events.js +++ b/src/scripts/events.js @@ -26,13 +26,18 @@ document.addEventListener("click", (e) => { const selectedItemName = (selectedItem !== null) ? selectedItem.getAttribute("name") : ""; // Modals - if (/(saveModalLauncher|editModalLauncher|deleteModalLauncher|downloadModalLauncher)/.test(action)) { + if (/(saveModalLauncher|freeSessionMeory|editModalLauncher|deleteModalLauncher|downloadModalLauncher)/.test(action)) { if (action == "saveModalLauncher") { preSaveSession(selectedItem, selectedItemName); showModal("saveModal"); return ; } + if (action == "freeSessionMeory") { + freeSessionMeory(); + return ; + } + if (selectedItem) { if (action == "editModalLauncher") { preEditSession(selectedItem, selectedItemName); diff --git a/src/scripts/session-manager.js b/src/scripts/session-manager.js index 7f8506b..62440a3 100644 --- a/src/scripts/session-manager.js +++ b/src/scripts/session-manager.js @@ -215,7 +215,7 @@ const loadSession = (json = null, replaceTabs = false) => { let keys = Object.keys(json); let keysLength = Object.keys(json).length; try { - browser.windows.getAll().then(windows => { + windowApi.getAll().then(windows => { windowApi.getCurrent({populate: true}).then(currentWindow => { let wasCurrentTabId = null; @@ -268,6 +268,21 @@ const loadSession = (json = null, replaceTabs = false) => { +const freeSessionMeory = () => { + windowApi.getAll({populate: true}).then(windows => { + for (let i = 0; i < windows.length; i++) { + windows[i].tabs.forEach(tab => { + let discarding = tabsApi.discard(tab.id); + discarding.then(onDiscarded, onError); + }); + } + }); + + messageWindow("success", "Freed session memory..."); +} + + + const confirmSessionOverwrite = () => { storageApi.set({[holderName]: holderData}); holderElm = document.getElementsByName(holderName)[0]; @@ -276,3 +291,13 @@ const confirmSessionOverwrite = () => { messageWindow("warning", "Overwrote session..."); resetArgs("confModal"); } + + + +function onDiscarded() { + console.log(`Discarded`); +} + +function onError(error) { + console.log(`Error: ${error}`); +}