about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/helpers/reddit.js83
-rw-r--r--src/assets/javascripts/helpers/search.js121
-rw-r--r--src/assets/javascripts/helpers/tiktok.js18
-rw-r--r--src/assets/javascripts/helpers/translate/translate.js141
-rw-r--r--src/assets/javascripts/helpers/twitter.js41
-rw-r--r--src/assets/javascripts/helpers/utils.js93
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js27
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js131
8 files changed, 322 insertions, 333 deletions
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 9617d921..e768b205 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -54,17 +54,14 @@ function setTedditRedirects(val) {
   browser.storage.local.set({ tedditTorRedirectsChecks })
 }
 
-let libredditNormalRedirectsChecks;
-let libredditTorRedirectsChecks;
-let libredditNormalCustomRedirects = [];
-let libredditTorCustomRedirects = [];
+let
+  libredditNormalRedirectsChecks,
+  libredditTorRedirectsChecks,
 
-let tedditNormalRedirectsChecks;
-let tedditTorRedirectsChecks;
-let tedditNormalCustomRedirects = [];
-let tedditTorCustomRedirects = [];
+  tedditNormalRedirectsChecks,
+  tedditTorRedirectsChecks;
 
-function initLibredditCookies(from) {
+function initLibredditCookies(test, from) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -81,22 +78,24 @@ function initLibredditCookies(from) {
           ...r.libredditTorRedirectsChecks,
           ...r.libredditNormalCustomRedirects,
           ...r.libredditTorCustomRedirects,
-        ].includes(protocolHost)) resolve();
+        ].includes(protocolHost)) { resolve(); return; }
 
-        let checkedInstances;
-        if (r.redditProtocol == 'normal') checkedInstances = [...r.libredditNormalRedirectsChecks, ...r.libredditNormalCustomRedirects];
-        else if (r.redditProtocol == 'tor') checkedInstances = [...r.libredditTorRedirectsChecks, ...r.libredditTorCustomRedirects];
-        for (const to of checkedInstances) {
-          utils.copyCookie('libreddit', from, to, "theme");
-          utils.copyCookie('libreddit', from, to, "front_page");
-          utils.copyCookie('libreddit', from, to, "layout");
-          utils.copyCookie('libreddit', from, to, "wide");
-          utils.copyCookie('libreddit', from, to, "post_sort");
-          utils.copyCookie('libreddit', from, to, "comment_sort");
-          utils.copyCookie('libreddit', from, to, "show_nsfw");
-          utils.copyCookie('libreddit', from, to, "autoplay_videos");
-          utils.copyCookie('libreddit', from, to, "use_hls");
-          utils.copyCookie('libreddit', from, to, "hide_hls_notification");
+        if (!test) {
+          let checkedInstances;
+          if (r.redditProtocol == 'normal') checkedInstances = [...r.libredditNormalRedirectsChecks, ...r.libredditNormalCustomRedirects];
+          else if (r.redditProtocol == 'tor') checkedInstances = [...r.libredditTorRedirectsChecks, ...r.libredditTorCustomRedirects];
+          for (const to of checkedInstances) {
+            utils.copyCookie('libreddit', from, to, "theme");
+            utils.copyCookie('libreddit', from, to, "front_page");
+            utils.copyCookie('libreddit', from, to, "layout");
+            utils.copyCookie('libreddit', from, to, "wide");
+            utils.copyCookie('libreddit', from, to, "post_sort");
+            utils.copyCookie('libreddit', from, to, "comment_sort");
+            utils.copyCookie('libreddit', from, to, "show_nsfw");
+            utils.copyCookie('libreddit', from, to, "autoplay_videos");
+            utils.copyCookie('libreddit', from, to, "use_hls");
+            utils.copyCookie('libreddit', from, to, "hide_hls_notification");
+          }
         }
         resolve(true);
       }
@@ -137,7 +136,7 @@ function setLibredditCookies() {
   )
 }
 
-function initTedditCookies(from) {
+function initTedditCookies(test, from) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -156,22 +155,24 @@ function initTedditCookies(from) {
           ...r.tedditTorCustomRedirects,
         ].includes(protocolHost)) resolve();
 
-        let checkedInstances;
-        if (r.redditProtocol == 'normal') checkedInstances = [...r.tedditNormalRedirectsChecks, ...r.tedditNormalCustomRedirects]
-        else if (r.redditProtocol == 'tor') checkedInstances = [...r.tedditTorRedirectsChecks, ...r.tedditTorCustomRedirects]
-        for (const to of checkedInstances) {
-          utils.copyCookie('teddit', from, to, 'collapse_child_comments')
-          utils.copyCookie('teddit', from, to, 'domain_instagram')
-          utils.copyCookie('teddit', from, to, 'domain_twitter')
-          utils.copyCookie('teddit', from, to, 'domain_youtube')
-          utils.copyCookie('teddit', from, to, 'flairs')
-          utils.copyCookie('teddit', from, to, 'highlight_controversial')
-          utils.copyCookie('teddit', from, to, 'nsfw_enabled')
-          utils.copyCookie('teddit', from, to, 'post_media_max_height')
-          utils.copyCookie('teddit', from, to, 'show_upvoted_percentage')
-          utils.copyCookie('teddit', from, to, 'show_upvotes')
-          utils.copyCookie('teddit', from, to, 'theme')
-          utils.copyCookie('teddit', from, to, 'videos_muted')
+        if (!test) {
+          let checkedInstances;
+          if (r.redditProtocol == 'normal') checkedInstances = [...r.tedditNormalRedirectsChecks, ...r.tedditNormalCustomRedirects]
+          else if (r.redditProtocol == 'tor') checkedInstances = [...r.tedditTorRedirectsChecks, ...r.tedditTorCustomRedirects]
+          for (const to of checkedInstances) {
+            utils.copyCookie('teddit', from, to, 'collapse_child_comments')
+            utils.copyCookie('teddit', from, to, 'domain_instagram')
+            utils.copyCookie('teddit', from, to, 'domain_twitter')
+            utils.copyCookie('teddit', from, to, 'domain_youtube')
+            utils.copyCookie('teddit', from, to, 'flairs')
+            utils.copyCookie('teddit', from, to, 'highlight_controversial')
+            utils.copyCookie('teddit', from, to, 'nsfw_enabled')
+            utils.copyCookie('teddit', from, to, 'post_media_max_height')
+            utils.copyCookie('teddit', from, to, 'show_upvoted_percentage')
+            utils.copyCookie('teddit', from, to, 'show_upvotes')
+            utils.copyCookie('teddit', from, to, 'theme')
+            utils.copyCookie('teddit', from, to, 'videos_muted')
+          }
         }
         resolve(true);
       }
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index 37bcdf72..56f0f025 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -102,31 +102,15 @@ let
   searxI2pRedirectsChecks,
   searxTorRedirectsChecks,
 
-  searxNormalCustomRedirects,
-  searxTorCustomRedirects,
-  searxI2pCustomRedirects,
-
   searxngNormalRedirectsChecks,
   searxngI2pRedirectsChecks,
   searxngTorRedirectsChecks,
 
-  searxngNormalCustomRedirects,
-  searxngTorCustomRedirects,
-  searxngI2pCustomRedirects,
-
   whoogleNormalRedirectsChecks,
   whoogleI2pRedirectsChecks,
-  whoogleTorRedirectsChecks,
-
-  whoogleNormalCustomRedirects,
-  whoogleTorCustomRedirects,
-  whoogleI2pCustomRedirects;
+  whoogleTorRedirectsChecks;
 
-let disable, // disableSearch
-  frontend, // searchFrontend
-  protocol; // searchProtocol
-
-function initSearxCookies(from) {
+function initSearxCookies(test, from) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -149,29 +133,30 @@ function initSearxCookies(from) {
           ...r.searxI2pCustomRedirects,
         ].includes(protocolHost)) return;
 
-
-        let checkedInstances;
-        if (protocol == 'normal') checkedInstances = [...r.searxNormalRedirectsChecks, ...r.searxNormalCustomRedirects];
-        else if (protocol == 'tor') checkedInstances = [...r.searxTorRedirectsChecks, ...r.searxTorCustomRedirects];
-        else if (protocol == 'i2p') checkedInstances = [...r.searxI2pRedirectsChecks, ...r.searxI2pCustomRedirects];
-        for (const to of checkedInstances) {
-          utils.copyCookie('searx', from, to, 'advanced_search');
-          utils.copyCookie('searx', from, to, 'autocomplete');
-          utils.copyCookie('searx', from, to, 'categories');
-          utils.copyCookie('searx', from, to, 'disabled_engines');
-          utils.copyCookie('searx', from, to, 'disabled_plugins');
-          utils.copyCookie('searx', from, to, 'doi_resolver');
-          utils.copyCookie('searx', from, to, 'enabled_engines');
-          utils.copyCookie('searx', from, to, 'enabled_plugins');
-          utils.copyCookie('searx', from, to, 'image_proxy');
-          utils.copyCookie('searx', from, to, 'language');
-          utils.copyCookie('searx', from, to, 'locale');
-          utils.copyCookie('searx', from, to, 'method');
-          utils.copyCookie('searx', from, to, 'oscar-style');
-          utils.copyCookie('searx', from, to, 'results_on_new_tab');
-          utils.copyCookie('searx', from, to, 'safesearch');
-          utils.copyCookie('searx', from, to, 'theme');
-          utils.copyCookie('searx', from, to, 'tokens');
+        if (!test) {
+          let checkedInstances;
+          if (r.searchProtocol == 'normal') checkedInstances = [...r.searxNormalRedirectsChecks, ...r.searxNormalCustomRedirects];
+          else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxTorRedirectsChecks, ...r.searxTorCustomRedirects];
+          else if (r.searchProtocol == 'i2p') checkedInstances = [...r.searxI2pRedirectsChecks, ...r.searxI2pCustomRedirects];
+          for (const to of checkedInstances) {
+            utils.copyCookie('searx', from, to, 'advanced_search');
+            utils.copyCookie('searx', from, to, 'autocomplete');
+            utils.copyCookie('searx', from, to, 'categories');
+            utils.copyCookie('searx', from, to, 'disabled_engines');
+            utils.copyCookie('searx', from, to, 'disabled_plugins');
+            utils.copyCookie('searx', from, to, 'doi_resolver');
+            utils.copyCookie('searx', from, to, 'enabled_engines');
+            utils.copyCookie('searx', from, to, 'enabled_plugins');
+            utils.copyCookie('searx', from, to, 'image_proxy');
+            utils.copyCookie('searx', from, to, 'language');
+            utils.copyCookie('searx', from, to, 'locale');
+            utils.copyCookie('searx', from, to, 'method');
+            utils.copyCookie('searx', from, to, 'oscar-style');
+            utils.copyCookie('searx', from, to, 'results_on_new_tab');
+            utils.copyCookie('searx', from, to, 'safesearch');
+            utils.copyCookie('searx', from, to, 'theme');
+            utils.copyCookie('searx', from, to, 'tokens');
+          }
         }
         resolve(true);
       }
@@ -218,7 +203,7 @@ function setSearxCookies() {
   )
 }
 
-function initSearxngCookies(from) {
+function initSearxngCookies(test, from) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -241,30 +226,32 @@ function initSearxngCookies(from) {
           ...r.searxngI2pCustomRedirects,
         ].includes(protocolHost)) return;
 
-        let checkedInstances;
-        if (r.searchProtocol == 'normal') checkedInstances = [...r.searxngNormalRedirectsChecks, ...r.searxngNormalCustomRedirects];
-        else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxngTorRedirectsChecks, ...r.searxngTorCustomRedirects];
-        else if (r.searchProtocol == 'i2p') checkedInstances = [...r.searxngI2pRedirectsChecks, ...r.searxngI2pCustomRedirects];
-        for (const to of checkedInstances) {
-          utils.copyCookie('searxng', from, to, 'autocomplete');
-          utils.copyCookie('searxng', from, to, 'categories');
-          utils.copyCookie('searxng', from, to, 'disabled_engines');
-          utils.copyCookie('searxng', from, to, 'disabled_plugins');
-          utils.copyCookie('searxng', from, to, 'doi_resolver');
-          utils.copyCookie('searxng', from, to, 'enabled_plugins');
-          utils.copyCookie('searxng', from, to, 'enabled_engines');
-          utils.copyCookie('searxng', from, to, 'image_proxy');
-          utils.copyCookie('searxng', from, to, 'infinite_scroll');
-          utils.copyCookie('searxng', from, to, 'language');
-          utils.copyCookie('searxng', from, to, 'locale');
-          utils.copyCookie('searxng', from, to, 'maintab');
-          utils.copyCookie('searxng', from, to, 'method');
-          utils.copyCookie('searxng', from, to, 'query_in_title');
-          utils.copyCookie('searxng', from, to, 'results_on_new_tab');
-          utils.copyCookie('searxng', from, to, 'safesearch');
-          utils.copyCookie('searxng', from, to, 'simple_style');
-          utils.copyCookie('searxng', from, to, 'theme');
-          utils.copyCookie('searxng', from, to, 'tokens');
+        if (!test) {
+          let checkedInstances;
+          if (r.searchProtocol == 'normal') checkedInstances = [...r.searxngNormalRedirectsChecks, ...r.searxngNormalCustomRedirects];
+          else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxngTorRedirectsChecks, ...r.searxngTorCustomRedirects];
+          else if (r.searchProtocol == 'i2p') checkedInstances = [...r.searxngI2pRedirectsChecks, ...r.searxngI2pCustomRedirects];
+          for (const to of checkedInstances) {
+            utils.copyCookie('searxng', from, to, 'autocomplete');
+            utils.copyCookie('searxng', from, to, 'categories');
+            utils.copyCookie('searxng', from, to, 'disabled_engines');
+            utils.copyCookie('searxng', from, to, 'disabled_plugins');
+            utils.copyCookie('searxng', from, to, 'doi_resolver');
+            utils.copyCookie('searxng', from, to, 'enabled_plugins');
+            utils.copyCookie('searxng', from, to, 'enabled_engines');
+            utils.copyCookie('searxng', from, to, 'image_proxy');
+            utils.copyCookie('searxng', from, to, 'infinite_scroll');
+            utils.copyCookie('searxng', from, to, 'language');
+            utils.copyCookie('searxng', from, to, 'locale');
+            utils.copyCookie('searxng', from, to, 'maintab');
+            utils.copyCookie('searxng', from, to, 'method');
+            utils.copyCookie('searxng', from, to, 'query_in_title');
+            utils.copyCookie('searxng', from, to, 'results_on_new_tab');
+            utils.copyCookie('searxng', from, to, 'safesearch');
+            utils.copyCookie('searxng', from, to, 'simple_style');
+            utils.copyCookie('searxng', from, to, 'theme');
+            utils.copyCookie('searxng', from, to, 'tokens');
+          }
         }
         resolve(true);
       }
@@ -350,7 +337,7 @@ function redirect(url) {
         "searxngI2pCustomRedirects",
       ],
       r => {
-        if (disable) { resolve(); return; }
+        if (r.disableSearch) { resolve(); return; }
         if (!targets.some(rx => rx.test(url.href))) { resolve(); return; }
         if (url.searchParams.has('tbm')) { resolve(); return; }
         if (url.hostname.includes('google') && !url.searchParams.has('q') && url.pathname != '/') { resolve(); return; }
diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js
index 590fca1a..f85b9986 100644
--- a/src/assets/javascripts/helpers/tiktok.js
+++ b/src/assets/javascripts/helpers/tiktok.js
@@ -39,7 +39,7 @@ let proxiTokTorCustomRedirects = [];
 let disable; // disableTiktok
 let protocol;
 
-function initProxiTokCookies(from) {
+function initProxiTokCookies(test, from) {
     return new Promise(resolve => {
         browser.storage.local.get(
             [
@@ -57,13 +57,15 @@ function initProxiTokCookies(from) {
                     ...r.proxiTokTorRedirectsChecks,
                     ...r.proxiTokTorCustomRedirects,
                 ].includes(protocolHost)) resolve();
-
-                let checkedInstances;
-                if (r.tiktokProtocol == 'normal') checkedInstances = [...r.proxiTokNormalRedirectsChecks, ...r.proxiTokNormalCustomRedirects]
-                else if (r.tiktokProtocol == 'tor') checkedInstances = [...r.proxiTokTorRedirectsChecks, ...r.proxiTokTorCustomRedirects]
-                for (const to of checkedInstances) {
-                    utils.copyCookie('proxitok', from, to, 'theme');
-                    utils.copyCookie('proxitok', from, to, 'api-legacy');
+                
+                if (!test) {
+                    let checkedInstances;
+                    if (r.tiktokProtocol == 'normal') checkedInstances = [...r.proxiTokNormalRedirectsChecks, ...r.proxiTokNormalCustomRedirects]
+                    else if (r.tiktokProtocol == 'tor') checkedInstances = [...r.proxiTokTorRedirectsChecks, ...r.proxiTokTorCustomRedirects]
+                    for (const to of checkedInstances) {
+                        utils.copyCookie('proxitok', from, to, 'theme');
+                        utils.copyCookie('proxitok', from, to, 'api-legacy');
+                    }
                 }
                 resolve(true);
             }
diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js
index d78a66b2..8ce8a2c2 100644
--- a/src/assets/javascripts/helpers/translate/translate.js
+++ b/src/assets/javascripts/helpers/translate/translate.js
@@ -17,6 +17,10 @@ let redirects = {
   }
 };
 
+let
+  simplyTranslateNormalRedirectsChecks,
+  lingvaNormalRedirectsChecks;
+
 function setRedirects(val) {
   browser.storage.local.get('cloudflareList', async r => {
     redirects = val;
@@ -24,11 +28,11 @@ function setRedirects(val) {
     lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
     for (const instance of r.cloudflareList) {
       let i;
-      i = simplyTranslateNormalRedirectsChecks.indexOf(instance);
-      if (i > -1) simplyTranslateNormalRedirectsChecks.splice(i, 1);
+      const a = simplyTranslateNormalRedirectsChecks.indexOf(instance);
+      if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1);
 
-      i = lingvaNormalRedirectsChecks.indexOf(instance);
-      if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1);
+      const b = lingvaNormalRedirectsChecks.indexOf(instance);
+      if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1);
     }
     browser.storage.local.set({
       translateRedirects: redirects,
@@ -40,11 +44,7 @@ function setRedirects(val) {
   })
 }
 
-let
-  simplyTranslateNormalRedirectsChecks,
-  lingvaNormalRedirectsChecks;
-
-function initLingvaLocalStorage(url, tabId) {
+function initLingvaLocalStorage(test, url, tabId) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -61,13 +61,15 @@ function initLingvaLocalStorage(url, tabId) {
           ...r.lingvaNormalCustomRedirects,
           ...r.lingvaTorCustomRedirects,
         ].includes(protocolHost)) { resolve(); return; }
-        browser.tabs.executeScript(
-          tabId,
-          {
-            file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js",
-            runAt: "document_start"
-          }
-        );
+
+        if (!test)
+          browser.tabs.executeScript(
+            tabId,
+            {
+              file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js",
+              runAt: "document_start"
+            }
+          );
         resolve(true);
       }
     )
@@ -106,7 +108,7 @@ function setLingvaLocalStorage(url, tabId) {
   })
 }
 
-function initSimplyTranslateCookies(from) {
+function initSimplyTranslateCookies(test, from) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -128,16 +130,17 @@ function initSimplyTranslateCookies(from) {
           ...r.simplyTranslateI2pRedirectsChecks,
           ...r.simplyTranslateI2pCustomRedirects,
         ].includes(protocolHost)) { resolve(); return; }
-
-        let checkedInstances;
-        if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects]
-        else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects]
-        else if (r.translateProtocol == 'i2p') checkedInstances = [...r.simplyTranslateI2pRedirectsChecks, ...r.simplyTranslateI2pCustomRedirects]
-        for (const to of checkedInstances) {
-          utils.copyCookie('simplyTranslate', from, to, 'from_lang');
-          utils.copyCookie('simplyTranslate', from, to, 'to_lang');
-          utils.copyCookie('simplyTranslate', from, to, 'tts_enabled');
-          utils.copyCookie('simplyTranslate', from, to, 'use_text_fields');
+        if (!test) {
+          let checkedInstances;
+          if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects]
+          else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects]
+          else if (r.translateProtocol == 'i2p') checkedInstances = [...r.simplyTranslateI2pRedirectsChecks, ...r.simplyTranslateI2pCustomRedirects]
+          for (const to of checkedInstances) {
+            utils.copyCookie('simplyTranslate', from, to, 'from_lang');
+            utils.copyCookie('simplyTranslate', from, to, 'to_lang');
+            utils.copyCookie('simplyTranslate', from, to, 'tts_enabled');
+            utils.copyCookie('simplyTranslate', from, to, 'use_text_fields');
+          }
         }
         resolve(true);
       }
@@ -157,7 +160,7 @@ function setSimplyTranslateCookies() {
       "simplyTranslateTorCustomRedirects",
     ],
     r => {
-      if (r.translateDisable || r.translateFrontend != 'simplyTranslate' || r.translateProtocol === undefined) return;
+      if (r.translateDisable || r.translateFrontend != 'simplyTranslate') return;
       let checkedInstances;
       if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects]
       else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects]
@@ -201,26 +204,24 @@ function redirect(url) {
           if (instancesList.length === 0) { resolve(); return; };
 
           let randomInstance = utils.getRandomInstance(instancesList)
-          console.log(`${randomInstance}/${url.search}`);
           resolve(`${randomInstance}/${url.search}`);
-
         }
         else if (r.translateFrontend == 'lingva') {
           let params_arr = url.search.split('&');
           params_arr[0] = params_arr[0].substring(1);
-          let myMap = {};
+          let params = {};
           for (let i = 0; i < params_arr.length; i++) {
             let pair = params_arr[i].split('=');
-            myMap[pair[0]] = pair[1];
+            params[pair[0]] = pair[1];
           }
           let instancesList;
           if (r.translateProtocol == 'normal') instancesList = [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects];
           if (r.translateProtocol == 'tor') instancesList = [...r.lingvaTorRedirectsChecks, ...r.lingvaTorCustomRedirects];
           if (instancesList.length === 0) { resolve(); return; }
-          let randomInstance = utils.getRandomInstance(instancesList)
 
-          if (myMap.sl && myMap.tl && myMap.text) {
-            resolve(`${randomInstance}/${myMap.sl}/${myMap.tl}/${myMap.text}`); return;
+          let randomInstance = utils.getRandomInstance(instancesList)
+          if (params.sl && params.tl && params.text) {
+            resolve(`${randomInstance}/${params.sl}/${params.tl}/${params.text}`); return;
           }
           resolve(randomInstance);
         }
@@ -248,9 +249,8 @@ function switchInstance(url) {
         "lingvaTorCustomRedirects",
       ],
       r => {
-        let protocolHost = utils.protocolHost(url);
-
-        let translateList = [
+        const protocolHost = utils.protocolHost(url);
+        if (![
           ...r.translateRedirects.simplyTranslate.normal,
           ...r.translateRedirects.simplyTranslate.tor,
 
@@ -262,12 +262,9 @@ function switchInstance(url) {
 
           ...r.lingvaNormalCustomRedirects,
           ...r.lingvaTorCustomRedirects,
-        ]
-
-        if (!translateList.includes(protocolHost)) { resolve(); return; }
+        ].includes(protocolHost)) { resolve(); return; }
 
         let instancesList;
-
         if (r.translateProtocol == 'normal') {
           if (r.translateFrontend == 'simplyTranslate') instancesList = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects];
           else if (r.translateFrontend == 'lingva') [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects];
@@ -282,45 +279,45 @@ function switchInstance(url) {
         if (instancesList.length === 0) { resolve(); return; }
 
         let randomInstance = utils.getRandomInstance(instancesList);
-        return `${randomInstance}${url.pathname}${url.search}`;
+        resolve(`${randomInstance}${url.pathname}${url.search}`);
       })
   })
 }
 
 function initDefaults() {
-  fetch('/instances/data.json').then(response => response.text()).then(async data => {
+  fetch('/instances/data.json').then(response => response.text()).then(data => {
     let dataJson = JSON.parse(data);
     redirects.simplyTranslate = dataJson.simplyTranslate;
     redirects.lingva = dataJson.lingva;
-    browser.storage.local.get('cloudflareList', async r => {
-      simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal];
-      lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
-      for (const instance of r.cloudflareList) {
-        let i;
-
-        i = simplyTranslateNormalRedirectsChecks.indexOf(instance);
-        if (i > -1) simplyTranslateNormalRedirectsChecks.splice(i, 1);
-
-        i = lingvaNormalRedirectsChecks.indexOf(instance);
-        if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1);
-      }
-      await browser.storage.local.set({
-        translateDisable: false,
-        translateFrontend: "simplyTranslate",
-        translateProtocol: 'normal',
-        translateRedirects: redirects,
-
-        simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks,
-        simplyTranslateNormalCustomRedirects: [],
-        simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
-        simplyTranslateTorCustomRedirects: [],
-
-        lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks,
-        lingvaNormalCustomRedirects: [],
-        lingvaTorRedirectsChecks: [...redirects.lingva.tor],
-        lingvaTorCustomRedirects: [],
+    browser.storage.local.get(
+      'cloudflareList',
+      r => {
+        simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal];
+        lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
+        for (const instance of r.cloudflareList) {
+          const a = simplyTranslateNormalRedirectsChecks.indexOf(instance);
+          if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1);
+
+          const b = lingvaNormalRedirectsChecks.indexOf(instance);
+          if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1);
+        }
+        browser.storage.local.set({
+          translateDisable: false,
+          translateFrontend: "simplyTranslate",
+          translateProtocol: 'normal',
+          translateRedirects: redirects,
+
+          simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks,
+          simplyTranslateNormalCustomRedirects: [],
+          simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
+          simplyTranslateTorCustomRedirects: [],
+
+          lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks,
+          lingvaNormalCustomRedirects: [],
+          lingvaTorRedirectsChecks: [...redirects.lingva.tor],
+          lingvaTorCustomRedirects: [],
+        })
       })
-    })
   })
 }
 
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 2660299c..811edc1d 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -180,7 +180,7 @@ function removeXFrameOptions(e) {
   })
 }
 
-function initNitterCookies(from) {
+function initNitterCookies(test, from) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -201,25 +201,26 @@ function initNitterCookies(from) {
           ].includes(protocolHost)
         ) { resolve(); return; }
 
-        let checkedInstances;
-        if (r.twitterProtocol == 'normal') checkedInstances = [...r.nitterNormalRedirectsChecks, ...r.nitterNormalCustomRedirects]
-        else if (r.twitterProtocol == 'tor') checkedInstances = [...r.nitterTorRedirectsChecks, ...r.nitterTorCustomRedirects]
-
-        for (const to of checkedInstances) {
-          utils.copyCookie('nitter', from, to, 'theme');
-          utils.copyCookie('nitter', from, to, 'infiniteScroll');
-          utils.copyCookie('nitter', from, to, 'stickyProfile');
-          utils.copyCookie('nitter', from, to, 'bidiSupport');
-          utils.copyCookie('nitter', from, to, 'hideTweetStats');
-          utils.copyCookie('nitter', from, to, 'hideBanner');
-          utils.copyCookie('nitter', from, to, 'hidePins');
-          utils.copyCookie('nitter', from, to, 'hideReplies');
-          utils.copyCookie('nitter', from, to, 'squareAvatars');
-          utils.copyCookie('nitter', from, to, 'mp4Playback');
-          utils.copyCookie('nitter', from, to, 'hlsPlayback');
-          utils.copyCookie('nitter', from, to, 'proxyVideos');
-          utils.copyCookie('nitter', from, to, 'muteVideos');
-          utils.copyCookie('nitter', from, to, 'autoplayGifs');
+        if (!test) {
+          let checkedInstances;
+          if (r.twitterProtocol == 'normal') checkedInstances = [...r.nitterNormalRedirectsChecks, ...r.nitterNormalCustomRedirects]
+          else if (r.twitterProtocol == 'tor') checkedInstances = [...r.nitterTorRedirectsChecks, ...r.nitterTorCustomRedirects]
+          for (const to of checkedInstances) {
+            utils.copyCookie('nitter', from, to, 'theme');
+            utils.copyCookie('nitter', from, to, 'infiniteScroll');
+            utils.copyCookie('nitter', from, to, 'stickyProfile');
+            utils.copyCookie('nitter', from, to, 'bidiSupport');
+            utils.copyCookie('nitter', from, to, 'hideTweetStats');
+            utils.copyCookie('nitter', from, to, 'hideBanner');
+            utils.copyCookie('nitter', from, to, 'hidePins');
+            utils.copyCookie('nitter', from, to, 'hideReplies');
+            utils.copyCookie('nitter', from, to, 'squareAvatars');
+            utils.copyCookie('nitter', from, to, 'mp4Playback');
+            utils.copyCookie('nitter', from, to, 'hlsPlayback');
+            utils.copyCookie('nitter', from, to, 'proxyVideos');
+            utils.copyCookie('nitter', from, to, 'muteVideos');
+            utils.copyCookie('nitter', from, to, 'autoplayGifs');
+          }
         }
         resolve(true);
       })
diff --git a/src/assets/javascripts/helpers/utils.js b/src/assets/javascripts/helpers/utils.js
index f864f90b..59fff19e 100644
--- a/src/assets/javascripts/helpers/utils.js
+++ b/src/assets/javascripts/helpers/utils.js
@@ -370,7 +370,7 @@ function copyRaw(test, copyRawElement) {
   })
 }
 
-function unify(unifyElement) {
+function unify(test, unifyElement) {
   return new Promise(resolve => {
     browser.tabs.query(
       { active: true, currentWindow: true },
@@ -378,35 +378,36 @@ function unify(unifyElement) {
         let currTab = tabs[0]
         if (currTab) {
           let url;
-          try {
-            url = new URL(currTab.url);
-          } catch { resolve(); return; }
+          try { url = new URL(currTab.url); }
+          catch { resolve(); return; }
 
-          let result = await youtubeHelper.initInvidiousCookies(url);
-          if (!result) result = await youtubeHelper.initPipedLocalStorage(url, currTab.id);
-          if (!result) result = await youtubeHelper.initPipedMaterialLocalStorage(url, currTab.id);
+          let result = await youtubeHelper.initInvidiousCookies(test, url);
+          if (!result) result = await youtubeHelper.initPipedLocalStorage(test, url, currTab.id);
+          if (!result) result = await youtubeHelper.initPipedMaterialLocalStorage(test, url, currTab.id);
 
-          if (!result) result = await twitterHelper.initNitterCookies(url);
+          if (!result) result = await twitterHelper.initNitterCookies(test, url);
 
-          if (!result) result = await redditHelper.initLibredditCookies(url);
-          if (!result) result = await redditHelper.initTedditCookies(url);
+          if (!result) result = await redditHelper.initLibredditCookies(test, url);
+          if (!result) result = await redditHelper.initTedditCookies(test, url);
 
-          if (!result) result = await searchHelper.initSearxCookies(url);
-          if (!result) result = await searchHelper.initSearxngCookies(url);
+          if (!result) result = await searchHelper.initSearxCookies(test, url);
+          if (!result) result = await searchHelper.initSearxngCookies(test, url);
 
-          if (!result) result = await tiktokHelper.initProxiTokCookies(url);
+          if (!result) result = await tiktokHelper.initProxiTokCookies(test, url);
 
-          if (!result) result = await wikipediaHelper.initWikilessCookies(url);
+          if (!result) result = await wikipediaHelper.initWikilessCookies(test, url);
 
-          if (!result) result = await translateHelper.initSimplyTranslateCookies(url);
-          if (!result) result = await translateHelper.initLingvaLocalStorage(url);
+          if (!result) result = await translateHelper.initSimplyTranslateCookies(test, url);
+          if (!result) result = await translateHelper.initLingvaLocalStorage(test, url);
 
           if (result) {
+            if (!test) {
+              const textElement = unifyElement.getElementsByTagName('h4')[0]
+              const oldHtml = textElement.innerHTML;
+              textElement.innerHTML = 'Unified';
+              setTimeout(() => textElement.innerHTML = oldHtml, 1000);
+            }
             resolve(true);
-            const textElement = unifyElement.getElementsByTagName('h4')[0]
-            const oldHtml = textElement.innerHTML;
-            textElement.innerHTML = 'Unified';
-            setTimeout(() => textElement.innerHTML = oldHtml, 1000);
           } else resolve()
         }
       }
@@ -414,30 +415,36 @@ function unify(unifyElement) {
   })
 }
 
-function switchInstance() {
-  browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
-    let currTab = tabs[0];
-    if (currTab) {
-      let url = new URL(currTab.url);
-      let newUrl;
-      newUrl = await youtubeHelper.switchInstance(url);
-      if (!newUrl) newUrl = await twitterHelper.switchInstance(url);
-      if (!newUrl) newUrl = await instagramHelper.switchInstance(url);
-      if (!newUrl) newUrl = await redditHelper.switchInstance(url);
-      if (!newUrl) newUrl = await searchHelper.switchInstance(url);
-      if (!newUrl) newUrl = await translateHelper.switchInstance(url);
-      if (!newUrl) newUrl = await mediumHelper.switchInstance(url);
-      if (!newUrl) newUrl = await sendTargetsHelper.switchInstance(url);
-      if (!newUrl) newUrl = await peertubeHelper.switchInstance(url);
-      if (!newUrl) newUrl = await lbryHelper.switchInstance(url);
-      if (!newUrl) newUrl = await imgurHelper.switchInstance(url);
-      if (!newUrl) newUrl = await wikipediaHelper.switchInstance(url);
-
-      if (newUrl) {
-        browser.tabs.update({ url: newUrl });
-        return true;
+function switchInstance(test) {
+  return new Promise(resolve => {
+    browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+      let currTab = tabs[0];
+      if (currTab) {
+        let url;
+        try { url = new URL(currTab.url); }
+        catch { resolve(); return };
+        let newUrl = await youtubeHelper.switchInstance(url);
+        if (!newUrl) newUrl = await twitterHelper.switchInstance(url);
+        if (!newUrl) newUrl = await instagramHelper.switchInstance(url);
+        if (!newUrl) newUrl = await redditHelper.switchInstance(url);
+        if (!newUrl) newUrl = await searchHelper.switchInstance(url);
+        if (!newUrl) newUrl = await translateHelper.switchInstance(url);
+        if (!newUrl) newUrl = await mediumHelper.switchInstance(url);
+        if (!newUrl) newUrl = await sendTargetsHelper.switchInstance(url);
+        if (!newUrl) newUrl = await peertubeHelper.switchInstance(url);
+        if (!newUrl) newUrl = await lbryHelper.switchInstance(url);
+        if (!newUrl) newUrl = await imgurHelper.switchInstance(url);
+        if (!newUrl) newUrl = await wikipediaHelper.switchInstance(url);
+
+        console.log('newUrl', newUrl);
+        console.log('test');
+        if (newUrl) {
+          if (!test)
+            browser.tabs.update({ url: newUrl });
+          resolve(true)
+        } else resolve()
       }
-    }
+    })
   })
   return false;
 }
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index 4bfdc2dc..81324221 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -38,18 +38,11 @@ function setRedirects(val) {
 }
 
 let
-  disable, // disableWikipedia
-  protocol; // wikipediaProtocol
-
-let
   wikilessNormalRedirectsChecks,
   wikilessTorRedirectsChecks,
-  wikilessI2pRedirectsChecks,
-  wikilessNormalCustomRedirects,
-  wikilessTorCustomRedirects,
-  wikilessI2pCustomRedirects;
+  wikilessI2pRedirectsChecks;
 
-function initWikilessCookies(from) {
+function initWikilessCookies(test, from) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -72,14 +65,16 @@ function initWikilessCookies(from) {
           ...r.wikilessI2pCustomRedirects,
         ].includes(protocolHost)) resolve();
 
-        let checkedInstances;
-        if (r.wikipediaProtocol == 'normal') checkedInstances = [...r.wikilessNormalRedirectsChecks, ...r.wikilessNormalCustomRedirects]
-        else if (r.wikipediaProtocol == 'tor') checkedInstances = [...r.wikilessTorRedirectsChecks, ...r.wikilessTorCustomRedirects]
-        else if (r.wikipediaProtocol == 'i2p') checkedInstances = [...r.wikilessI2pRedirectsChecks, ...r.wikilessI2pCustomRedirects]
+        if (!test) {
+          let checkedInstances;
+          if (r.wikipediaProtocol == 'normal') checkedInstances = [...r.wikilessNormalRedirectsChecks, ...r.wikilessNormalCustomRedirects]
+          else if (r.wikipediaProtocol == 'tor') checkedInstances = [...r.wikilessTorRedirectsChecks, ...r.wikilessTorCustomRedirects]
+          else if (r.wikipediaProtocol == 'i2p') checkedInstances = [...r.wikilessI2pRedirectsChecks, ...r.wikilessI2pCustomRedirects]
 
-        for (const to of checkedInstances) {
-          utils.copyCookie('wikiless', from, to, 'theme');
-          utils.copyCookie('wikiless', from, to, 'default_lang');
+          for (const to of checkedInstances) {
+            utils.copyCookie('wikiless', from, to, 'theme');
+            utils.copyCookie('wikiless', from, to, 'default_lang');
+          }
         }
         resolve(true);
       }
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 835a5f81..dce03680 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -33,24 +33,19 @@ let redirects = {
     "tor": []
   }
 };
-
 function setRedirects(val) {
-  browser.storage.local.get('cloudflareList', async r => {
+  browser.storage.local.get('cloudflareList', r => {
     redirects.invidious = val.invidious;
     redirects.piped = val.piped;
     invidiousNormalRedirectsChecks = [...redirects.invidious.normal];
     pipedNormalRedirectsChecks = [...redirects.piped.normal];
-
     for (const instance of r.cloudflareList) {
-      let i;
+      const a = invidiousNormalRedirectsChecks.indexOf(instance);
+      if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1);
 
-      i = invidiousNormalRedirectsChecks.indexOf(instance);
-      if (i > -1) invidiousNormalRedirectsChecks.splice(i, 1);
-
-      i = pipedNormalRedirectsChecks.indexOf(instance);
-      if (i > -1) pipedNormalRedirectsChecks.splice(i, 1);
+      const b = pipedNormalRedirectsChecks.indexOf(instance);
+      if (b > -1) pipedNormalRedirectsChecks.splice(b, 1);
     }
-
     browser.storage.local.set({
       youtubeRedirects: redirects,
       invidiousNormalRedirectsChecks,
@@ -63,21 +58,13 @@ function setRedirects(val) {
 
 let
   invidiousNormalRedirectsChecks,
-  invidiousNormalCustomRedirects,
   invidiousTorRedirectsChecks,
-  invidiousTorCustomRedirects;
 
-let
   pipedNormalRedirectsChecks,
-  pipedNormalCustomRedirects,
   pipedTorRedirectsChecks,
-  pipedTorCustomRedirects;
 
-let
   pipedMaterialNormalRedirectsChecks,
-  pipedMaterialNormalCustomRedirects,
-  pipedMaterialTorRedirectsChecks,
-  pipedMaterialTorCustomRedirects;
+  pipedMaterialTorRedirectsChecks;
 
 function redirect(url, details, initiator) {
   return new Promise(resolve => {
@@ -129,27 +116,38 @@ function redirect(url, details, initiator) {
           )
         ) { resolve('BYPASSTAB'); return; }
 
+        const isInvidious = r.youtubeFrontend == 'invidious';
+        const isPiped = r.youtubeFrontend == 'piped';
+        const isPipedMaterial = r.youtubeFrontend == 'pipedMaterial'
+        const isFreetube = r.youtubeFrontend == 'freetube';
+        const isYatte = r.youtubeFrontend == 'yatte';
+
+        const isFrontendYoutube = r.youtubeEmbedFrontend == "youtube";
+        const isFrontendInvidious = r.youtubeEmbedFrontend == 'invidious';
+        const isFrontendPiped = r.youtubeEmbedFrontend == 'piped';
+        const isFrontendPipedMaterial = r.youtubeEmbedFrontend == 'pipedMaterial';
+
+        const isOnlyEmbeddedVideo = r.OnlyEmbeddedVideo == 'onlyNotEmbedded';
+        const isOnlyNotEmbedded = r.OnlyEmbeddedVideo == 'onlyNotEmbedded'
+
+        const is_main_frame = details.type === "main_frame";
+        const is_sub_frame = details.type === "sub_frame";
+
         if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) { resolve(); return; } // Don't redirect YouTube Player API.
 
-        if (r.youtubeFrontend == 'yatte' && details.type === "main_frame")
+        if (r.youtubeFrontend == 'yatte' && is_main_frame)
           resolve(url.href.replace(/^https?:\/{2}/, 'yattee://'));
 
-        else if (r.youtubeFrontend == 'freetube' && details.type === "main_frame")
+        else if (isFreetube && is_main_frame)
           resolve(`freetube://https:${url.pathname}${url.search}`);
 
-        else if (r.youtubeFrontend == 'freetube' && details.type !== "main_frame" && r.youtubeEmbedFrontend == "youtube")
+        else if (isFreetube && params && isFrontendYoutube)
           resolve();
 
-        else if (
-          r.youtubeFrontend == 'invidious' ||
-          ((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'invidious' && details.type == "sub_frame")
-        ) {
+        else if (isInvidious || ((isFreetube || isYatte) && isFrontendInvidious && is_sub_frame)) {
 
-          if (r.OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") { resolve(); return; }
-          if (
-            r.OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" &&
-            !((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'invidious' && details.type === "sub_frame")
-          ) { resolve(); return; }
+          if (isOnlyEmbeddedVideo && !is_sub_frame) { resolve(); return; }
+          if (isOnlyNotEmbedded && params && !((isFreetube || isYatte) && isFrontendInvidious && is_sub_frame)) { resolve(); return; }
 
           let instancesList;
           if (r.youtubeProtocol == 'normal') instancesList = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects];
@@ -158,16 +156,12 @@ function redirect(url, details, initiator) {
           let randomInstance = utils.getRandomInstance(instancesList);
 
           resolve(`${randomInstance}${url.pathname}${url.search}`);
+        } else if (isPiped || ((isFreetube || isYatte) && isFrontendPiped && is_sub_frame)) {
 
-        } else if (
-          r.youtubeFrontend == 'piped' ||
-          ((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'piped' && details.type === "sub_frame")
-        ) {
-
-          if (r.OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") { resolve(); return; }
+          if (isOnlyEmbeddedVideo && !is_sub_frame) { resolve(); return; }
           if (
-            r.OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" &&
-            !((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'piped' && details.type == "sub_frame")
+            isOnlyNotEmbedded && params &&
+            !((isFreetube || isYatte) && isFrontendPiped && is_sub_frame)
           ) { resolve(); return; }
 
           let instancesList;
@@ -178,12 +172,11 @@ function redirect(url, details, initiator) {
 
           resolve(`${randomInstance}${url.pathname}${url.search}`)
         }
-        else if (r.youtubeFrontend == 'pipedMaterial' ||
-          ((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'pipedMaterial' && details.type === "sub_frame")) {
-          if (r.OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") { resolve(); return; }
+        else if (isPipedMaterial || ((isFreetube || isYatte) && isFrontendPipedMaterial && is_sub_frame)) {
+          if (isOnlyEmbeddedVideo && details.type !== "sub_frame") { resolve(); return; }
           if (
-            r.OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" &&
-            !((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'pipedMaterial' && details.type == "sub_frame")
+            isOnlyNotEmbedded && params &&
+            !((isFreetube || isYatte) && isFrontendPipedMaterial && is_sub_frame)
           ) { resolve(); return; }
 
           let instancesList;
@@ -371,7 +364,7 @@ function initDefaults() {
   })
 }
 
-function initInvidiousCookies(from) {
+function initInvidiousCookies(test, from) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -389,11 +382,13 @@ function initInvidiousCookies(from) {
           ...r.invidiousNormalCustomRedirects,
           ...r.invidiousTorCustomRedirects,
         ].includes(protocolHost)) { resolve(); return; }
-        let checkedInstances;
-        if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
-        else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
-        for (const to of checkedInstances)
-          utils.copyCookie('invidious', from, to, 'PREFS');
+        if (!test) {
+          let checkedInstances;
+          if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]
+          else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects]
+          for (const to of checkedInstances)
+            utils.copyCookie('invidious', from, to, 'PREFS');
+        }
         resolve(true);
       }
     )
@@ -422,7 +417,7 @@ function setInvidiousCookies() {
   )
 }
 
-function initPipedLocalStorage(url, tabId) {
+function initPipedLocalStorage(test, url, tabId) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -439,13 +434,15 @@ function initPipedLocalStorage(url, tabId) {
           ...r.pipedTorRedirectsChecks,
           ...r.pipedTorCustomRedirects,
         ].includes(protocolHost)) { resolve(); return; }
-        browser.tabs.executeScript(
-          tabId,
-          {
-            file: "/assets/javascripts/helpers/youtube/get_piped_settings.js",
-            runAt: "document_start"
-          }
-        );
+
+        if (!test)
+          browser.tabs.executeScript(
+            tabId,
+            {
+              file: "/assets/javascripts/helpers/youtube/get_piped_settings.js",
+              runAt: "document_start"
+            }
+          );
         resolve(true);
       }
     )
@@ -485,7 +482,7 @@ function setPipedLocalStorage(url, tabId) {
   })
 }
 
-function initPipedMaterialLocalStorage(url, tabId) {
+function initPipedMaterialLocalStorage(test, url, tabId,) {
   return new Promise(resolve => {
     browser.storage.local.get(
       [
@@ -502,13 +499,15 @@ function initPipedMaterialLocalStorage(url, tabId) {
           ...r.pipedMaterialTorRedirectsChecks,
           ...r.pipedMaterialTorCustomRedirects,
         ].includes(protocolHost)) { resolve(); return; }
-        browser.tabs.executeScript(
-          tabId,
-          {
-            file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js",
-            runAt: "document_start"
-          }
-        );
+
+        if (!test)
+          browser.tabs.executeScript(
+            tabId,
+            {
+              file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js",
+              runAt: "document_start"
+            }
+          );
         resolve(true);
       }
     )