about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/assets/javascripts/helpers/translate/set_lingva_preferences.js2
-rw-r--r--src/assets/javascripts/helpers/translate/translate.js67
-rw-r--r--src/assets/javascripts/helpers/youtube/get_piped_preferences.js2
-rw-r--r--src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js2
-rw-r--r--src/assets/javascripts/helpers/youtube/set_piped_preferences.js2
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js156
-rw-r--r--src/pages/background/background.js14
-rw-r--r--src/pages/options/general/general.js4
-rw-r--r--src/pages/popup/popup.js1
9 files changed, 92 insertions, 158 deletions
diff --git a/src/assets/javascripts/helpers/translate/set_lingva_preferences.js b/src/assets/javascripts/helpers/translate/set_lingva_preferences.js
index 7380fa37..d40f28e4 100644
--- a/src/assets/javascripts/helpers/translate/set_lingva_preferences.js
+++ b/src/assets/javascripts/helpers/translate/set_lingva_preferences.js
@@ -12,5 +12,7 @@ browser.storage.local.get(
         if (r.lingva_isauto !== undefined) localStorage.setItem('isauto', r.lingva_isauto);
         if (r.lingva_source !== undefined) localStorage.setItem('source', r.lingva_source);
         if (r.lingva_target !== undefined) localStorage.setItem('target', r.lingva_target);
+
+        window.close();
     }
 )
diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js
index 996f0ee3..3e853160 100644
--- a/src/assets/javascripts/helpers/translate/translate.js
+++ b/src/assets/javascripts/helpers/translate/translate.js
@@ -47,66 +47,48 @@ function initLingvaLocalStorage(test, url, tabId) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
+        "translateDisable",
+        "translateProtocol",
+        "translateFrontend",
         "lingvaNormalRedirectsChecks",
         "lingvaNormalCustomRedirects",
         "lingvaTorRedirectsChecks",
         "lingvaTorCustomRedirects",
       ],
       r => {
-        let protocolHost = utils.protocolHost(url);
+        if (r.translateDisable || r.translateFrontend != 'lingva') { resolve(); return; }
+        const protocolHost = utils.protocolHost(url);
         if (![
           ...r.lingvaNormalRedirectsChecks,
-          ...r.lingvaTorRedirectsChecks,
           ...r.lingvaNormalCustomRedirects,
+          ...r.lingvaTorRedirectsChecks,
           ...r.lingvaTorCustomRedirects,
         ].includes(protocolHost)) { resolve(); return; }
 
-        if (!test)
+        if (!test) {
           browser.tabs.executeScript(
             tabId,
-            {
-              file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js",
-              runAt: "document_start"
-            }
+            { file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js", runAt: "document_start" }
           );
+
+          let checkedInstances;
+          if (r.translateProtocol == 'normal') checkedInstances = [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects];
+          if (r.translateProtocol == 'tor') checkedInstances = [...r.lingvaTorRedirectsChecks, ...r.lingvaTorCustomRedirects];
+          const i = checkedInstances.indexOf(protocolHost);
+          if (i !== -1) checkedInstances.splice(i, 1);
+          if (checkedInstances.length === 0) { resolve(); return; }
+          for (const to of checkedInstances)
+            browser.tabs.create(
+              { url: to },
+              tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/helpers/translate/set_lingva_preferences.js", runAt: "document_start" })
+            );
+        }
         resolve(true);
       }
     )
   })
 }
 
-function setLingvaLocalStorage(url, tabId) {
-  return new Promise(resolve => {
-    browser.storage.local.get(
-      [
-        "disableYoutube",
-        "youtubeFrontend",
-        "lingvaNormalRedirectsChecks",
-        "lingvaNormalCustomRedirects",
-        "lingvaTorRedirectsChecks",
-        "lingvaTorCustomRedirects",
-      ],
-      r => {
-        if (r.disableYoutube || r.youtubeFrontend != 'lingva') { resolve(); return; }
-        let protocolHost = utils.protocolHost(url);
-        if (![
-          ...r.lingvaNormalRedirectsChecks,
-          ...r.lingvaTorRedirectsChecks,
-          ...r.lingvaNormalCustomRedirects,
-          ...r.lingvaTorCustomRedirects,
-        ].includes(protocolHost)) { resolve(); return; }
-        browser.tabs.executeScript(
-          tabId,
-          {
-            file: "/assets/javascripts/helpers/youtube/set_lingva_preferences.js",
-            runAt: "document_start"
-          }
-        );
-        resolve(true);
-      })
-  })
-}
-
 function initSimplyTranslateCookies(test, from) {
   return new Promise(resolve => {
     browser.storage.local.get(
@@ -233,6 +215,7 @@ function switchInstance(url) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
+        "translateDisable",
         "translateFrontend",
         "translateProtocol",
         "translateRedirects",
@@ -248,6 +231,7 @@ function switchInstance(url) {
         "lingvaTorCustomRedirects",
       ],
       r => {
+        if (r.translateDisable) { resolve(); return; };
         const protocolHost = utils.protocolHost(url);
         if (![
           ...r.translateRedirects.simplyTranslate.normal,
@@ -266,14 +250,14 @@ function switchInstance(url) {
         let instancesList;
         if (r.translateProtocol == 'normal') {
           if (r.translateFrontend == 'simplyTranslate') instancesList = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects];
-          else if (r.translateFrontend == 'lingva') [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects];
+          else if (r.translateFrontend == 'lingva') instancesList = [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects];
         }
         else if (r.translateProtocol == 'tor') {
           if (r.translateFrontend == 'simplyTranslate') instancesList = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects];
           else if (r.translateFrontend == 'lingva') instancesList = [...r.lingvaTorRedirectsChecks, ...r.lingvaTorCustomRedirects];
         }
 
-        let index = instancesList.indexOf(protocolHost);
+        const index = instancesList.indexOf(protocolHost);
         if (index > -1) instancesList.splice(index, 1);
         if (instancesList.length === 0) { resolve(); return; }
 
@@ -326,7 +310,6 @@ export default {
   initSimplyTranslateCookies,
   setSimplyTranslateCookies,
   initLingvaLocalStorage,
-  setLingvaLocalStorage,
 
   setRedirects,
 
diff --git a/src/assets/javascripts/helpers/youtube/get_piped_preferences.js b/src/assets/javascripts/helpers/youtube/get_piped_preferences.js
index 7f090ff6..417d64df 100644
--- a/src/assets/javascripts/helpers/youtube/get_piped_preferences.js
+++ b/src/assets/javascripts/helpers/youtube/get_piped_preferences.js
@@ -1,7 +1,5 @@
 window.browser = window.browser || window.chrome;
 
-console.log('unifying piped');
-
 browser.storage.local.set(
     {
         'piped_bufferGoal': localStorage.getItem("bufferGoal"),
diff --git a/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js b/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js
index 7e12fe26..7415255a 100644
--- a/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js
+++ b/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js
@@ -4,5 +4,7 @@ browser.storage.local.get(
     "pipedMaterial_PREFERENCES",
     r => {
         if (r.pipedMaterial_PREFERENCES !== undefined) localStorage.setItem("PREFERENCES", r.pipedMaterial_PREFERENCES)
+
+        window.close();
     }
 )
\ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/set_piped_preferences.js b/src/assets/javascripts/helpers/youtube/set_piped_preferences.js
index b0aa223c..d5ce49ff 100644
--- a/src/assets/javascripts/helpers/youtube/set_piped_preferences.js
+++ b/src/assets/javascripts/helpers/youtube/set_piped_preferences.js
@@ -38,5 +38,7 @@ browser.storage.local.get(
         if (r.piped_theme !== undefined) localStorage.setItem("theme", r.piped_theme);
         if (r.piped_volume !== undefined) localStorage.setItem("volume", r.piped_volume);
         if (r.piped_watchHistory !== undefined) localStorage.setItem("watchHistory", r.piped_watchHistory);
+
+        window.close();
     }
 )
\ No newline at end of file
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index fc75a113..989e3f61 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -368,14 +368,17 @@ function initInvidiousCookies(test, from) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
+        "disableYoutube",
         "youtubeProtocol",
+        "youtubeFrontend",
         "invidiousNormalRedirectsChecks",
         "invidiousNormalCustomRedirects",
         "invidiousTorRedirectsChecks",
         "invidiousTorCustomRedirects",
       ],
       r => {
-        let protocolHost = utils.protocolHost(from);
+        if (r.disableYoutube || r.youtubeFrontend != 'invidious') { resolve(); return; }
+        const protocolHost = utils.protocolHost(from);
         if (![
           ...r.invidiousNormalRedirectsChecks,
           ...r.invidiousTorRedirectsChecks,
@@ -386,6 +389,8 @@ function initInvidiousCookies(test, from) {
           let checkedInstances;
           if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
           else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
+          const i = checkedInstances.indexOf(protocolHost);
+          if (i !== -1) checkedInstances.splice(i, 1);
           for (const to of checkedInstances)
             utils.copyCookie('invidious', from, to, 'PREFS');
         }
@@ -408,7 +413,7 @@ function setInvidiousCookies() {
         "invidiousTorCustomRedirects",
       ],
       r => {
-        if (r.disableYoutube || r.youtubeFrontend != 'invidious' || r.youtubeProtocol === undefined) { resolve(); return; }
+        if (r.disableYoutube || r.youtubeFrontend != 'invidious') { resolve(); return; }
         let checkedInstances;
         if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
         else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
@@ -424,39 +429,8 @@ function initPipedLocalStorage(test, url, tabId) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
-        "pipedNormalRedirectsChecks",
-        "pipedNormalCustomRedirects",
-        "pipedTorRedirectsChecks",
-        "pipedTorCustomRedirects",
-      ],
-      r => {
-        let protocolHost = utils.protocolHost(url);
-        if (![
-          ...r.pipedNormalCustomRedirects,
-          ...r.pipedNormalRedirectsChecks,
-          ...r.pipedTorRedirectsChecks,
-          ...r.pipedTorCustomRedirects,
-        ].includes(protocolHost)) { resolve(); return; }
-
-        if (!test)
-          browser.tabs.executeScript(
-            tabId,
-            {
-              file: "/assets/javascripts/helpers/youtube/get_piped_preferences.js",
-              runAt: "document_start"
-            }
-          );
-        resolve(true);
-      }
-    )
-  })
-}
-
-function setPipedLocalStorage(url, tabId) {
-  return new Promise(resolve => {
-    browser.storage.local.get(
-      [
         "disableYoutube",
+        "youtubeProtocol",
         "youtubeFrontend",
         "pipedNormalRedirectsChecks",
         "pipedNormalCustomRedirects",
@@ -464,68 +438,45 @@ function setPipedLocalStorage(url, tabId) {
         "pipedTorCustomRedirects",
       ],
       r => {
-        if (!r.disableYoutube && r.youtubeFrontend == 'pipedMaterial') { resolve(); return; }
-        let protocolHost = utils.protocolHost(url);
+        if (r.disableYoutube || r.youtubeFrontend != 'piped') { resolve(); return; }
+        const protocolHost = utils.protocolHost(url);
         if (![
+          ...r.pipedNormalCustomRedirects,
           ...r.pipedNormalRedirectsChecks,
           ...r.pipedTorRedirectsChecks,
-          ...r.pipedNormalCustomRedirects,
           ...r.pipedTorCustomRedirects,
         ].includes(protocolHost)) { resolve(); return; }
-        browser.tabs.executeScript(
-          tabId,
-          {
-            file: "/assets/javascripts/helpers/youtube/set_piped_preferences.js",
-            runAt: "document_start"
-          }
-        );
-        resolve(true);
-      }
-    )
-  })
-}
 
-function initPipedMaterialLocalStorage(test, url, tabId,) {
-  return new Promise(resolve => {
-    browser.storage.local.get(
-      [
-        "pipedMaterialNormalRedirectsChecks",
-        "pipedMaterialNormalCustomRedirects",
-        "pipedMaterialTorRedirectsChecks",
-        "pipedMaterialTorCustomRedirects",
-      ],
-      r => {
-        const protocolHost = utils.protocolHost(url);
-        if (![
-          ...r.pipedMaterialNormalCustomRedirects,
-          ...r.pipedMaterialNormalRedirectsChecks,
-          ...r.pipedMaterialTorRedirectsChecks,
-          ...r.pipedMaterialTorCustomRedirects,
-        ].includes(protocolHost)) { resolve(); return; }
+        if (!test) {
+          browser.tabs.executeScript(tabId, { file: "/assets/javascripts/helpers/youtube/get_piped_preferences.js", runAt: "document_start" });
 
-        if (!test)
-          browser.tabs.executeScript(
-            tabId,
-            {
-              file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js",
-              runAt: "document_start"
-            }
-          );
+          let checkedInstances;
+          if (r.youtubeProtocol == 'normal') checkedInstances = [...r.pipedNormalCustomRedirects, ...r.pipedNormalRedirectsChecks]
+          else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.pipedTorRedirectsChecks, ...r.pipedTorCustomRedirects]
+          const i = checkedInstances.indexOf(protocolHost);
+          if (i !== -1) checkedInstances.splice(i, 1);
+          for (const to of checkedInstances)
+            browser.tabs.create(
+              { url: to },
+              tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/helpers/youtube/set_piped_preferences.js", runAt: "document_start" })
+            );
+        }
         resolve(true);
       }
     )
   })
 }
 
-function setPipedMaterialLocalStorage(url, tabId) {
+function initPipedMaterialLocalStorage(test, url, tabId,) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
         "disableYoutube",
+        "youtubeProtocol",
         "youtubeFrontend",
         "pipedMaterialNormalRedirectsChecks",
-        "pipedMaterialTorRedirectsChecks",
         "pipedMaterialNormalCustomRedirects",
+        "pipedMaterialTorRedirectsChecks",
         "pipedMaterialTorCustomRedirects",
       ],
       r => {
@@ -533,17 +484,25 @@ function setPipedMaterialLocalStorage(url, tabId) {
         const protocolHost = utils.protocolHost(url);
         if (![
           ...r.pipedMaterialNormalRedirectsChecks,
-          ...r.pipedMaterialTorRedirectsChecks,
           ...r.pipedMaterialNormalCustomRedirects,
+          ...r.pipedMaterialTorRedirectsChecks,
           ...r.pipedMaterialTorCustomRedirects,
         ].includes(protocolHost)) { resolve(); return; }
-        browser.tabs.executeScript(
-          tabId,
-          {
-            file: "/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js",
-            runAt: "document_start"
-          }
-        );
+
+        if (!test) {
+          browser.tabs.executeScript(tabId, { file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js", runAt: "document_start" });
+
+          let checkedInstances;
+          if (r.youtubeProtocol == 'normal') checkedInstances = [...r.pipedMaterialNormalRedirectsChecks, ...r.pipedMaterialNormalCustomRedirects]
+          else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.pipedMaterialTorRedirectsChecks, ...r.pipedMaterialTorCustomRedirects]
+          const i = checkedInstances.indexOf(protocolHost);
+          if (i !== -1) checkedInstances.splice(i, 1);
+          for (const to of checkedInstances)
+            browser.tabs.create(
+              { url: to },
+              tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js", runAt: "document_start" })
+            );
+        }
         resolve(true);
       }
     )
@@ -555,15 +514,19 @@ function removeXFrameOptions(e) {
     browser.storage.local.get(
       [
         "youtubeRedirects",
-        "pipedMaterialNormalRedirectsChecks",
-        "pipedMaterialTorRedirectsChecks",
         "invidiousNormalCustomRedirects",
         "invidiousTorCustomRedirects",
+
+        "pipedNormalCustomRedirects",
+        "pipedTorCustomRedirects",
+
+        "pipedMaterialNormalCustomRedirects",
+        "pipedMaterialTorCustomRedirects",
       ],
       r => {
         const url = new URL(e.url);
         let protocolHost = utils.protocolHost(url);
-        const list = [
+        if (![
           ...r.youtubeRedirects.invidious.normal,
           ...r.youtubeRedirects.invidious.tor,
           ...r.youtubeRedirects.piped.normal,
@@ -573,14 +536,17 @@ function removeXFrameOptions(e) {
           ...r.invidiousTorCustomRedirects,
 
           ...r.pipedNormalCustomRedirects,
-          ...r.pipedTorCustomRedirects
-        ];
-        if (!list.includes(protocolHost) || e.type != 'sub_frame') { resolve(); return; }
+          ...r.pipedTorCustomRedirects,
+
+          ...r.pipedMaterialNormalCustomRedirects,
+          ...r.pipedMaterialTorCustomRedirects,
+        ].includes(protocolHost) || e.type != 'sub_frame') { resolve(); return; }
         let isChanged = false;
-        for (const i in e.responseHeaders) if (e.responseHeaders[i].name == 'x-frame-options') {
-          e.responseHeaders.splice(i, 1);
-          isChanged = true;
-        }
+        for (const i in e.responseHeaders)
+          if (e.responseHeaders[i].name == 'x-frame-options') {
+            e.responseHeaders.splice(i, 1);
+            isChanged = true;
+          }
         if (isChanged) resolve({ responseHeaders: e.responseHeaders });
       })
   })
@@ -589,8 +555,6 @@ function removeXFrameOptions(e) {
 export default {
   setRedirects,
   initPipedMaterialLocalStorage,
-  setPipedLocalStorage,
-  setPipedMaterialLocalStorage,
   initInvidiousCookies,
   setInvidiousCookies,
 
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 5a6dc820..211ecf98 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -216,20 +216,6 @@ browser.webRequest.onErrorOccurred.addListener(
   { urls: ["<all_urls>"], }
 )
 
-browser.tabs.onUpdated.addListener(
-  async (tabId, changeInfo, _) => {
-    await wholeInit();
-    let url;
-    try { url = new URL(changeInfo.url); }
-    catch (_) { return }
-    let result = await youtubeHelper.setPipedLocalStorage(url, tabId);
-    if (!result) result = await youtubeHelper.setPipedMaterialLocalStorage(url, tabId);
-    if (!result) result = await translateHelper.initLingvaLocalStorage(url, tabId);
-  }
-);
-
-
-
 browser.commands.onCommand.addListener(
   command => {
     if (command === 'switchInstance') utils.switchInstance();
diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js
index f2690209..c943ddd8 100644
--- a/src/pages/options/general/general.js
+++ b/src/pages/options/general/general.js
@@ -80,10 +80,8 @@ function importError() {
   setTimeout(() => importSettingsElementText.innerHTML = oldHTML, 1000);
 }
 
-let resetSettingsElement = document.getElementById("reset-settings");
-resetSettingsElement.addEventListener("click",
+document.getElementById("reset-settings").addEventListener("click",
   async () => {
-    console.log("reset");
     await browser.storage.local.clear();
     fetch('/instances/blocklist.json').then(response => response.text()).then(async data => {
       await browser.storage.local.set({ cloudflareList: JSON.parse(data) })
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index 58d45d6a..824f178b 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -94,7 +94,6 @@ utils.unify(true).then(r => {
   if (!r) document.getElementById('unify_div').style.display = 'none';
   else {
     const unify = document.getElementById('unify');
-    console.log('addlistner');
     unify.addEventListener("click", () => utils.unify(false, unify));
   }
 })