about summary refs log tree commit diff stats
path: root/src/pages
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/background/background.js39
-rw-r--r--src/pages/options/imgur/imgur.js65
-rw-r--r--src/pages/options/instagram/instagram.js9
-rw-r--r--src/pages/options/lbry/lbry.js18
-rw-r--r--src/pages/options/maps/maps.js45
-rw-r--r--src/pages/options/medium/medium.js7
-rw-r--r--src/pages/options/peertube/peertube.js19
-rw-r--r--src/pages/options/reddit/reddit.js15
-rw-r--r--src/pages/options/search/search.js30
-rw-r--r--src/pages/options/sendTargets/sendTargets.js6
-rw-r--r--src/pages/options/speedtest/speedtest.js6
-rw-r--r--src/pages/options/spotify/spotify.js4
-rw-r--r--src/pages/options/tiktok/tiktok.js29
-rw-r--r--src/pages/options/translate/translate.js164
-rw-r--r--src/pages/options/twitter/twitter.js12
-rw-r--r--src/pages/options/wikipedia/wikipedia.js8
-rw-r--r--src/pages/options/youtube/invidious.js146
-rw-r--r--src/pages/options/youtube/piped.js106
-rw-r--r--src/pages/options/youtube/pipedMaterial.js79
-rw-r--r--src/pages/options/youtubeMusic/youtubeMusic.js4
20 files changed, 348 insertions, 463 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index dffcdc5b..65be27ae 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -23,25 +23,28 @@ window.browser = window.browser || window.chrome;
 
 browser.runtime.onInstalled.addListener(async details => {
   if (details.reason == 'install') {
-    youtubeHelper.initDefaults();
-    youtubeMusicHelper.initDefaults();
-    twitterHelper.initDefaults();
-    instagramHelper.initDefaults();
-    mapsHelper.initDefaults();
-    searchHelper.initDefaults();
-    translateHelper.initDefaults();
-    mediumHelper.initDefaults();
-    redditHelper.initDefaults();
-    wikipediaHelper.initDefaults();
-    imgurHelper.initDefaults();
-    tiktokHelper.initDefaults();
-    speedtestHelper.initDefaults();
-    sendTargetsHelper.initDefaults();
-    peertubeHelper.initDefaults();
-    lbryHelper.initDefaults();
-    spotifyHelper.initDefaults();
+    fetch('/instances/cloudflare.json').then(response => response.text()).then(async data => {
+      await browser.storage.local.set({ cloudflareList: JSON.parse(data) })
+      youtubeHelper.initDefaults();
+      youtubeMusicHelper.initDefaults();
+      twitterHelper.initDefaults();
+      instagramHelper.initDefaults();
+      mapsHelper.initDefaults();
+      searchHelper.initDefaults();
+      translateHelper.initDefaults();
+      mediumHelper.initDefaults();
+      redditHelper.initDefaults();
+      wikipediaHelper.initDefaults();
+      imgurHelper.initDefaults();
+      tiktokHelper.initDefaults();
+      speedtestHelper.initDefaults();
+      sendTargetsHelper.initDefaults();
+      peertubeHelper.initDefaults();
+      lbryHelper.initDefaults();
+      spotifyHelper.initDefaults();
+    })
   }
-});
+})
 
 async function wholeInit() {
   await youtubeHelper.init();
diff --git a/src/pages/options/imgur/imgur.js b/src/pages/options/imgur/imgur.js
index 2830f665..597d015b 100644
--- a/src/pages/options/imgur/imgur.js
+++ b/src/pages/options/imgur/imgur.js
@@ -9,7 +9,7 @@ document.addEventListener("change", async () => {
         disableImgur: !disableImgurElement.checked,
         imgurProtocol: protocolElement.value,
     });
-    init();
+    changeProtocolSettings(protocolElement.value);
 })
 
 function changeProtocolSettings(protocol) {
@@ -33,44 +33,21 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-function init() {
-    imgurHelper.init().then(() => {
-        browser.storage.local.get(
-            [
-                "disableImgur",
-                "imgurProtocol",
-            ],
-            r => {
-                disableImgurElement.checked = !r.disableImgur;
-                protocolElement.value = r.imgurProtocol;
-                changeProtocolSettings(r.imgurProtocol);
-            }
-        );
-
-
-        commonHelper.processDefaultCustomInstances(
-            'rimgo',
-            'normal',
-            imgurHelper,
-            document
-        );
-
-        commonHelper.processDefaultCustomInstances(
-            'rimgo',
-            'tor',
-            imgurHelper,
-            document
-        );
+browser.storage.local.get(
+    [
+        "disableImgur",
+        "imgurProtocol",
+    ],
+    r => {
+        disableImgurElement.checked = !r.disableImgur;
+        protocolElement.value = r.imgurProtocol;
+        changeProtocolSettings(r.imgurProtocol);
+    }
+);
 
-        commonHelper.processDefaultCustomInstances(
-            'rimgo',
-            'i2p',
-            imgurHelper,
-            document
-        );
-    });
-}
-init();
+commonHelper.processDefaultCustomInstances('imgur', 'rimgo', 'normal', document);
+commonHelper.processDefaultCustomInstances('imgur', 'rimgo', 'tor', document);
+commonHelper.processDefaultCustomInstances('imgur', 'rimgo', 'i2p', document);
 
 
 let latencyElement = document.getElementById("latency");
@@ -86,17 +63,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.rimgo.normal).then(r => {
             browser.storage.local.set({ rimgoLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'rimgo',
-                'normal',
-                imgurHelper,
-                document,
-                imgurHelper.getRimgoNormalRedirectsChecks,
-                imgurHelper.setRimgoNormalRedirectsChecks,
-                imgurHelper.getRimgoNormalCustomRedirects,
-                imgurHelper.setRimgoNormalCustomRedirects,
-                r
-            );
+            commonHelper.processDefaultCustomInstances('imgur', 'rimgo', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/instagram/instagram.js b/src/pages/options/instagram/instagram.js
index 7dcd5607..6b29d869 100644
--- a/src/pages/options/instagram/instagram.js
+++ b/src/pages/options/instagram/instagram.js
@@ -31,17 +31,16 @@ browser.storage.local.get(
         "instagramProtocol"
     ],
     r => {
-
         disableInstagramElement.checked = !r.disableInstagram;
 
         let protocol = r.instagramProtocol;
         protocolElement.value = protocol;
         changeProtocolSettings(protocol);
-
-        commonHelper.processDefaultCustomInstances('bibliogram', 'normal', instagramHelper, document)
-        commonHelper.processDefaultCustomInstances('bibliogram', 'tor', instagramHelper, document)
     })
 
+commonHelper.processDefaultCustomInstances('instagram', 'bibliogram', 'normal', document);
+commonHelper.processDefaultCustomInstances('instagram', 'bibliogram', 'tor', document);
+
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
 latencyElement.addEventListener("click",
@@ -55,7 +54,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.bibliogram.normal).then(r => {
             browser.storage.local.set({ bibliogramLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('bibliogram', 'normal', instagramHelper, document);
+            commonHelper.processDefaultCustomInstances('instagram', 'bibliogram', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/lbry/lbry.js b/src/pages/options/lbry/lbry.js
index 3ab04369..f1cb49da 100644
--- a/src/pages/options/lbry/lbry.js
+++ b/src/pages/options/lbry/lbry.js
@@ -31,16 +31,14 @@ browser.storage.local.get(
         "lbryTargetsProtocol"
     ],
     r => {
-    disableLbryElement.checked = !r.disableLbryTargets;
-
-    let protocol = r.lbryTargetsProtocol;
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    commonHelper.processDefaultCustomInstances('librarian', 'normal', lbryHelper, document);
-    commonHelper.processDefaultCustomInstances('librarian', 'tor', lbryHelper, document)
-})
+        disableLbryElement.checked = !r.disableLbryTargets;
 
+        let protocol = r.lbryTargetsProtocol;
+        protocolElement.value = protocol;
+        changeProtocolSettings(protocol);
+    })
+commonHelper.processDefaultCustomInstances('lbry', 'librarian', 'normal', document);
+commonHelper.processDefaultCustomInstances('lbry', 'librarian', 'tor', document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -55,7 +53,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.librarian.normal).then(r => {
             browser.storage.local.set({ librarianLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('librarian', 'normal', lbryHelper, document);
+            commonHelper.processDefaultCustomInstances('lbry', 'librarian', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/maps/maps.js b/src/pages/options/maps/maps.js
index 982b7980..3f2df54d 100644
--- a/src/pages/options/maps/maps.js
+++ b/src/pages/options/maps/maps.js
@@ -2,18 +2,15 @@ import mapsHelper from "../../../assets/javascripts/helpers/maps.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableMapsElement = document.getElementById("disable-osm");
-disableMapsElement.addEventListener("change",
-    (event) => mapsHelper.setDisable(!event.target.checked)
-);
-
 let mapsFrontendElement = document.getElementById("maps-frontend");
-mapsFrontendElement.addEventListener("change",
-    event => {
-        let frontend = event.target.options[mapsFrontendElement.selectedIndex].value;
-        mapsHelper.setFrontend(frontend);
-        changeFrontendsSettings(frontend);
-    }
-);
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableMaps: !disableMapsElement.checked,
+        mapsFrontend: mapsFrontendElement.value,
+    })
+    changeFrontendsSettings(mapsFrontendElement.value);
+})
 
 let facilDivElement = document.getElementById("facil")
 function changeFrontendsSettings(frontend) {
@@ -24,18 +21,18 @@ function changeFrontendsSettings(frontend) {
         facilDivElement.style.display = 'none';
     }
 }
-
-mapsHelper.init().then(() => {
-    console.log(mapsHelper.getFacilNormalRedirectsChecks())
-    disableMapsElement.checked = !mapsHelper.getDisable();
-    let frontend = mapsHelper.getFrontend();
-    mapsFrontendElement.value = frontend;
-    changeFrontendsSettings(frontend);
-
-    browser.storage.local.get("facilLatency").then(r => {
-        commonHelper.processDefaultCustomInstances('facil', 'normal', mapsHelper, document, r.facilLatency)
-    })
-})
+browser.storage.local.get(
+    [
+        "disableMaps",
+        "mapsFrontend",
+    ],
+    r => {
+        disableMapsElement.checked = !r.disableMaps;
+        mapsFrontendElement.value = r.mapsFrontend;
+        changeFrontendsSettings(r.mapsFrontend);
+    }
+)
+commonHelper.processDefaultCustomInstances('maps', 'facil', 'normal', document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -50,7 +47,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.facil.normal).then(r => {
             browser.storage.local.set({ facilLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('facil', 'normal', mapsHelper, document);
+            commonHelper.processDefaultCustomInstances('maps', 'facil', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/medium/medium.js b/src/pages/options/medium/medium.js
index 4fb04092..753a8d72 100644
--- a/src/pages/options/medium/medium.js
+++ b/src/pages/options/medium/medium.js
@@ -15,11 +15,10 @@ browser.storage.local.get(
         let protocol = r.mediumProtocol;
         protocolElement.value = protocol;
         changeProtocolSettings(protocol);
-
-        commonHelper.processDefaultCustomInstances('scribe', 'normal', mediumHelper, document)
-        commonHelper.processDefaultCustomInstances('scribe', 'tor', mediumHelper, document)
     }
 )
+commonHelper.processDefaultCustomInstances('medium', 'scribe', 'normal', document);
+commonHelper.processDefaultCustomInstances('medium', 'scribe', 'tor', document);
 
 document.addEventListener("change", async () => {
     await browser.storage.local.set({
@@ -55,7 +54,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.scribe.normal).then(r => {
             browser.storage.local.set({ scribeLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('scribe', 'normal', mediumHelper, document);
+            commonHelper.processDefaultCustomInstances('medium', 'scribe', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/peertube/peertube.js b/src/pages/options/peertube/peertube.js
index 419523d0..3e2abb2f 100644
--- a/src/pages/options/peertube/peertube.js
+++ b/src/pages/options/peertube/peertube.js
@@ -11,14 +11,13 @@ browser.storage.local.get(
     r => {
         disablePeertubeElement.checked = !r.disablePeertubeTargets;
 
-        let protocol = peertubeTargetsProtocol;
+        let protocol = r.peertubeTargetsProtocol;
         protocolElement.value = protocol;
         changeProtocolSettings(protocol);
-
-        commonHelper.processDefaultCustomInstances('simpleertube', 'normal', peertubeHelper, document);
-        commonHelper.processDefaultCustomInstances('simpleertube', 'tor', peertubeHelper, document)
     }
 )
+commonHelper.processDefaultCustomInstances('peertube', 'simpleertube', 'normal', document);
+commonHelper.processDefaultCustomInstances('peertube', 'simpleertube', 'tor', document);
 
 document.addEventListener("change", async () => {
     await browser.storage.local.set({
@@ -54,17 +53,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.simpleertube.normal).then(r => {
             browser.storage.local.set({ simpleertubeLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'simpleertube',
-                'normal',
-                peertubeHelper,
-                document,
-                peertubeHelper.getSimpleertubeNormalRedirectsChecks,
-                peertubeHelper.setSimpleertubeNormalRedirectsChecks,
-                peertubeHelper.getSimpleertubeNormalCustomRedirects,
-                peertubeHelper.setSimpleertubeNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('peertube', 'simpleertube', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js
index 3f79eeaa..475f8b61 100644
--- a/src/pages/options/reddit/reddit.js
+++ b/src/pages/options/reddit/reddit.js
@@ -42,7 +42,8 @@ document.addEventListener("change", async () => {
         redditUseHls: use_hls.checked,
         redditHideHlsNotification: hide_hls_notification.checked,
     });
-    init();
+    changeFrontendsSettings(redditFrontendElement.value);
+    changeProtocolSettings(protocolElement.value);
 })
 
 function changeProtocolSettings(protocol) {
@@ -129,10 +130,10 @@ browser.storage.local.get(
     }
 )
 
-commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document)
-commonHelper.processDefaultCustomInstances('libreddit', 'tor', redditHelper, document)
-commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
-commonHelper.processDefaultCustomInstances('teddit', 'tor', redditHelper, document);
+commonHelper.processDefaultCustomInstances('reddit', 'libreddit', 'normal', document);
+commonHelper.processDefaultCustomInstances('reddit', 'libreddit', 'tor', document);
+commonHelper.processDefaultCustomInstances('reddit', 'teddit', 'normal', document);
+commonHelper.processDefaultCustomInstances('reddit', 'teddit', 'tor', document);
 
 
 let latencyLibredditElement = document.getElementById("latency-libreddit");
@@ -148,7 +149,7 @@ latencyLibredditElement.addEventListener("click",
         commonHelper.testLatency(latencyLibredditLabel, redirects.libreddit.normal).then(r => {
             browser.storage.local.set({ libredditLatency: r });
             latencyLibredditLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document);
+            commonHelper.processDefaultCustomInstances('reddit', 'libreddit', 'normal', document);
             latencyLibredditElement.removeEventListener("click", reloadWindow);
         });
     }
@@ -167,7 +168,7 @@ latencyTedditElement.addEventListener("click",
         commonHelper.testLatency(latencyTedditLabel, redirects.teddit.normal).then(r => {
             browser.storage.local.set({ tedditLatency: r });
             latencyTedditLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
+            commonHelper.processDefaultCustomInstances('reddit', 'teddit', 'normal', document);
             latencyTedditElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/search/search.js b/src/pages/options/search/search.js
index 893c3e4f..37b0ed46 100644
--- a/src/pages/options/search/search.js
+++ b/src/pages/options/search/search.js
@@ -16,10 +16,10 @@ browser.storage.local.get(
     "searchProtocol",
   ],
   r => {
-    disableSearchElement.checked = !disableSearch;
+    disableSearchElement.checked = !r.disableSearch;
 
-    searchFrontendElement.value = r.searchFronten;
-    changeFrontendsSettings(r.searchFronten);
+    searchFrontendElement.value = r.searchFrontend;
+    changeFrontendsSettings(r.searchFrontend);
 
     protocolElement.value = r.searchProtocol;
     changeProtocolSettings(r.searchProtocol);
@@ -106,15 +106,15 @@ function changeProtocolSettings(protocol) {
   }
 }
 
-commonHelper.processDefaultCustomInstances('searx', 'normal', searchHelper, document);
-commonHelper.processDefaultCustomInstances('searx', 'tor', searchHelper, document);
-commonHelper.processDefaultCustomInstances('searx', 'i2p', searchHelper, document);
-commonHelper.processDefaultCustomInstances('searxng', 'normal', searchHelper, document);
-commonHelper.processDefaultCustomInstances('searxng', 'tor', searchHelper, document);
-commonHelper.processDefaultCustomInstances('searxng', 'i2p', searchHelper, document);
-commonHelper.processDefaultCustomInstances('whoogle', 'normal', searchHelper, document);
-commonHelper.processDefaultCustomInstances('whoogle', 'tor', searchHelper, document);
-commonHelper.processDefaultCustomInstances('whoogle', 'i2p', searchHelper, document);
+commonHelper.processDefaultCustomInstances('search', 'searx', 'normal', document);
+commonHelper.processDefaultCustomInstances('search', 'searx', 'tor', document);
+commonHelper.processDefaultCustomInstances('search', 'searx', 'i2p', document);
+commonHelper.processDefaultCustomInstances('search', 'searxng', 'normal', document);
+commonHelper.processDefaultCustomInstances('search', 'searxng', 'tor', document);
+commonHelper.processDefaultCustomInstances('search', 'searxng', 'i2p', document);
+commonHelper.processDefaultCustomInstances('search', 'whoogle', 'normal', document);
+commonHelper.processDefaultCustomInstances('search', 'whoogle', 'tor', document);
+commonHelper.processDefaultCustomInstances('search', 'whoogle', 'i2p', document);
 
 let latencySearxElement = document.getElementById("latency-searx");
 let latencySearxLabel = document.getElementById("latency-searx-label");
@@ -129,7 +129,7 @@ latencySearxElement.addEventListener("click",
     commonHelper.testLatency(latencySearxLabel, redirects.searx.normal).then(r => {
       browser.storage.local.set({ searxLatency: r });
       latencySearxLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances('searx', 'normal', searchHelper, document);
+      commonHelper.processDefaultCustomInstances('search', 'searx', 'normal', document);
       latencySearxElement.removeEventListener("click", reloadWindow);
     });
   }
@@ -148,7 +148,7 @@ latencySearxngElement.addEventListener("click",
     commonHelper.testLatency(latencySearxngLabel, redirects.searxng.normal).then(r => {
       browser.storage.local.set({ searxngLatency: r });
       latencySearxngLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances('searxng', 'normal', searchHelper, document);
+      commonHelper.processDefaultCustomInstances('search', 'searxng', 'normal', document);
       latencySearxngElement.removeEventListener("click", reloadWindow);
     });
   }
@@ -167,7 +167,7 @@ latencyWhoogleElement.addEventListener("click",
     commonHelper.testLatency(latencyWhoogleLabel, redirects.whoogle.normal).then(r => {
       browser.storage.local.set({ whoogleLatency: r });
       latencyWhoogleLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances('whoogle', 'normal', searchHelper, document);
+      commonHelper.processDefaultCustomInstances('search', 'whoogle', 'normal', document);
       latencyWhoogleElement.removeEventListener("click", reloadWindow);
     });
   }
diff --git a/src/pages/options/sendTargets/sendTargets.js b/src/pages/options/sendTargets/sendTargets.js
index dc40f83f..236d6799 100644
--- a/src/pages/options/sendTargets/sendTargets.js
+++ b/src/pages/options/sendTargets/sendTargets.js
@@ -38,8 +38,8 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-commonHelper.processDefaultCustomInstances('send', 'normal', sendTargetsHelper, document);
-commonHelper.processDefaultCustomInstances('send', 'tor', sendTargetsHelper, document,)
+commonHelper.processDefaultCustomInstances('sendTargets', 'send', 'normal', document);
+commonHelper.processDefaultCustomInstances('sendTargets', 'send', 'tor', document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -54,7 +54,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.send.normal).then(r => {
             browser.storage.local.set({ sendLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('send', 'normal', sendTargetsHelper, document)
+            commonHelper.processDefaultCustomInstances('sendTargets', 'send', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/speedtest/speedtest.js b/src/pages/options/speedtest/speedtest.js
index 95fa9fea..986f75c7 100644
--- a/src/pages/options/speedtest/speedtest.js
+++ b/src/pages/options/speedtest/speedtest.js
@@ -38,8 +38,8 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-commonHelper.processDefaultCustomInstances('librespeed', 'normal', speedtestHelper, document);
-commonHelper.processDefaultCustomInstances('librespeed', 'tor', speedtestHelper, document);
+commonHelper.processDefaultCustomInstances('speedtest', 'librespeed', 'normal', document);
+commonHelper.processDefaultCustomInstances('speedtest', 'librespeed', 'tor', document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -54,7 +54,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.librespeed.normal).then(r => {
             browser.storage.local.set({ librespeedLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('librespeed', 'normal', speedtestHelper, document)
+            commonHelper.processDefaultCustomInstances('speedtest', 'librespeed', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/spotify/spotify.js b/src/pages/options/spotify/spotify.js
index 33cc9e91..16fa1f56 100644
--- a/src/pages/options/spotify/spotify.js
+++ b/src/pages/options/spotify/spotify.js
@@ -12,7 +12,7 @@ browser.storage.local.get(
     }
 )
 
-commonHelper.processDefaultCustomInstances('soju', 'normal', spotifyHelper, document);
+commonHelper.processDefaultCustomInstances('spotify', 'soju', 'normal', document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -27,7 +27,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.soju.normal).then(r => {
             browser.storage.local.set({ sojuLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('soju', 'normal', spotifyHelper, document)
+            commonHelper.processDefaultCustomInstances('spotify', 'soju', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/tiktok/tiktok.js b/src/pages/options/tiktok/tiktok.js
index 61841145..56cf93dc 100644
--- a/src/pages/options/tiktok/tiktok.js
+++ b/src/pages/options/tiktok/tiktok.js
@@ -5,7 +5,7 @@ let disable = document.getElementById("disable-tiktok");
 let protocol = document.getElementById("protocol")
 
 let enableCustomSettings = document.getElementById("enable-custom-settings");
-let customSettingsDiv = document.getElementsByClassName("custom-settings")[0];
+let customSettingsDiv = document.getElementsByClassName("custom-settings");
 
 let theme = document.getElementById('proxiTok').getElementsByClassName('theme')[0];
 let api_legacy = document.getElementById('proxiTok').getElementsByClassName('api-legacy')[0];
@@ -21,7 +21,7 @@ document.addEventListener("change", async () => {
         proxiTokApiLegacy: api_legacy.value,
 
     });
-    init();
+    changeProtocolSettings(protocol.value);
 })
 
 window.onblur = tiktokHelper.initProxiTokCookies;
@@ -39,6 +39,7 @@ browser.storage.local.get(
     r => {
         disable.checked = !r.disableTiktok;
         protocol.value = r.tiktokProtocol;
+        changeProtocolSettings(r.tiktokProtocol);
         let normalDiv = document.getElementsByClassName("normal")[0];
         let torDiv = document.getElementsByClassName("tor")[0];
         if (r.tiktokProtocol == 'normal') {
@@ -57,13 +58,29 @@ browser.storage.local.get(
             customSettingsDiv.style.display = 'none';
 
         theme.value = r.proxiTokTheme;
-        api_legacy.value = r.proxiTokApiLegacy
+        api_legacy.value = r.proxiTokApiLegacy;
     }
 )
 
-commonHelper.processDefaultCustomInstances('proxiTok', 'normal', tiktokHelper, document);
-commonHelper.processDefaultCustomInstances('proxiTok', 'tor', tiktokHelper, document)
+function changeProtocolSettings(protocol) {
+    let normalDiv = document.getElementsByClassName("normal")[0];
+    let torDiv = document.getElementsByClassName("tor")[0];
+    if (protocol == 'normal') {
+        normalDiv.style.display = 'block';
+        torDiv.style.display = 'none';
+    }
+    else if (protocol == 'tor') {
+        normalDiv.style.display = 'none';
+        torDiv.style.display = 'block';
+    }
+    if (enableCustomSettings.checked)
+        for (const item of customSettingsDiv) item.style.display = 'block';
+    else
+        for (const item of customSettingsDiv) item.style.display = 'none';
+}
 
+commonHelper.processDefaultCustomInstances('tiktok', 'proxiTok', 'normal', document);
+commonHelper.processDefaultCustomInstances('tiktok', 'proxiTok', 'tor', document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -78,7 +95,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.proxiTok.normal).then(r => {
             browser.storage.local.set({ proxiTokLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('proxiTok', 'normal', tiktokHelper, document)
+            commonHelper.processDefaultCustomInstances('tiktok', 'proxiTok', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/translate/translate.js b/src/pages/options/translate/translate.js
index 999d5e30..3338f8ce 100644
--- a/src/pages/options/translate/translate.js
+++ b/src/pages/options/translate/translate.js
@@ -2,13 +2,10 @@ import translateHelper from "../../../assets/javascripts/helpers/translate/trans
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableElement = document.getElementById("disable-simplyTranslate");
-disableElement.addEventListener("change",
-    (event) => translateHelper.setDisable(!event.target.checked)
-);
-
 let simplyTranslateDivElement = document.getElementById("simplyTranslate");
 let lingvaDivElement = document.getElementById("lingva");
-
+let translateFrontendElement = document.getElementById("translate-frontend");
+let protocolElement = document.getElementById("protocol");
 
 function changeFrontendsSettings(frontend) {
     if (frontend == 'simplyTranslate') {
@@ -20,23 +17,20 @@ function changeFrontendsSettings(frontend) {
         lingvaDivElement.style.display = 'block';
     }
 }
-let translateFrontendElement = document.getElementById("translate-frontend");
-translateFrontendElement.addEventListener("change",
-    event => {
-        let frontend = event.target.options[translateFrontendElement.selectedIndex].value
-        translateHelper.setFrontend(frontend)
-        changeFrontendsSettings(frontend);
-    }
-);
 
-let protocolElement = document.getElementById("protocol");
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        translateHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
-    }
-);
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        translateDisable: !disableElement.checked,
+        translateFrontend: translateFrontendElement.value,
+        translateProtocol: protocolElement.value,
+        translateFrom: fromElement.value,
+        translateTo: toElement.value,
+        simplyTranslateEngine: simplyTranslateEngineElement.value,
+    })
+    changeProtocolSettings(protocolElement.value);
+    changeFrontendsSettings(translateFrontendElement.value);
+})
+
 
 function changeProtocolSettings(protocol) {
     let normalSimplyTranslateDiv = document.getElementById("simplyTranslate").getElementsByClassName("normal")[0];
@@ -60,88 +54,38 @@ function changeProtocolSettings(protocol) {
 }
 
 let fromElement = document.getElementsByClassName("from")[0];
-fromElement.addEventListener("change",
-    event => translateHelper.setFrom(event.target.options[fromElement.selectedIndex].value)
-);
-
 let toElement = document.getElementsByClassName("to")[0];
-toElement.addEventListener("change",
-    event => translateHelper.setTo(event.target.options[toElement.selectedIndex].value)
-);
-
 let simplyTranslateElement = document.getElementById("simplyTranslate")
 let simplyTranslateEngineElement = simplyTranslateElement.getElementsByClassName("engine")[0];
-simplyTranslateEngineElement.addEventListener("change",
-    event => translateHelper.setSimplyTranslateEngine(event.target.options[simplyTranslateEngineElement.selectedIndex].value)
-);
-
-translateHelper.init().then(() => {
-    disableElement.checked = !translateHelper.getDisable();
-
-    let frontend = translateHelper.getFrontend();
-    translateFrontendElement.value = frontend;
-    changeFrontendsSettings(frontend);
-
-    let protocol = translateHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    fromElement.value = translateHelper.getFrom();
-    toElement.value = translateHelper.getTo();
-    simplyTranslateEngineElement.value = translateHelper.getSimplyTranslateEngine();
 
-    browser.storage.local.get("simplyTranslateLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'simplyTranslate',
-            'normal',
-            translateHelper,
-            document,
-            translateHelper.getSimplyTranslateNormalRedirectsChecks,
-            translateHelper.setSimplyTranslateNormalRedirectsChecks,
-            translateHelper.getSimplyTranslateNormalCustomRedirects,
-            translateHelper.setSimplyTranslateNormalCustomRedirects,
-            r.simplyTranslateLatency,
-        )
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'simplyTranslate',
-        'tor',
-        translateHelper,
-        document,
-        translateHelper.getSimplyTranslateTorRedirectsChecks,
-        translateHelper.setSimplyTranslateTorRedirectsChecks,
-        translateHelper.getSimplyTranslateTorCustomRedirects,
-        translateHelper.setSimplyTranslateTorCustomRedirects
-    );
-
-    browser.storage.local.get("lingvaLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'lingva',
-            'normal',
-            translateHelper,
-            document,
-            translateHelper.getLingvaNormalRedirectsChecks,
-            translateHelper.setLingvaNormalRedirectsChecks,
-            translateHelper.getLingvaNormalCustomRedirects,
-            translateHelper.setLingvaNormalCustomRedirects,
-            r.lingvaLatency,
-        );
-    });
-
-
-    commonHelper.processDefaultCustomInstances(
-        'lingva',
-        'tor',
-        translateHelper,
-        document,
-        translateHelper.getLingvaTorRedirectsChecks,
-        translateHelper.setLingvaTorRedirectsChecks,
-        translateHelper.getLingvaTorCustomRedirects,
-        translateHelper.setLingvaTorCustomRedirects,
-    )
-});
+browser.storage.local.get(
+    [
+        "translateDisable",
+        "translateFrontend",
+        "translateProtocol",
+        "translateFrom",
+        "translateTo",
+        "simplyTranslateEngine",
+    ],
+    r => {
+        disableElement.checked = !r.translateDisable;
+
+        translateFrontendElement.value = r.translateFrontend;
+        changeFrontendsSettings(r.translateFrontend);
+
+        protocolElement.value = r.translateProtocol;
+        changeProtocolSettings(r.translateProtocol);
+
+        fromElement.value = r.translateFrom;
+        toElement.value = r.translateTo;
+        simplyTranslateEngineElement.value = r.simplyTranslateEngine;
+    }
+);
 
+commonHelper.processDefaultCustomInstances('translate', 'simplyTranslate', 'normal', document)
+commonHelper.processDefaultCustomInstances('translate', 'simplyTranslate', 'tor', document);
+commonHelper.processDefaultCustomInstances('translate', 'lingva', 'normal', document);
+commonHelper.processDefaultCustomInstances('translate', 'lingva', 'tor', document);
 
 let latencySimplyTranslateElement = document.getElementById("latency-simplyTranslate");
 let latencySimplyTranslateLabel = document.getElementById("latency-simplyTranslate-label");
@@ -156,17 +100,7 @@ latencySimplyTranslateElement.addEventListener("click",
         commonHelper.testLatency(latencySimplyTranslateLabel, redirects.simplyTranslate.normal).then(r => {
             browser.storage.local.set({ simplyTranslateLatency: r });
             latencySimplyTranslateLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'simplyTranslate',
-                'normal',
-                translateHelper,
-                document,
-                translateHelper.getSimplyTranslateNormalRedirectsChecks,
-                translateHelper.setSimplyTranslateNormalRedirectsChecks,
-                translateHelper.getSimplyTranslateNormalCustomRedirects,
-                translateHelper.setSimplyTranslateNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('translate', 'simplyTranslate', 'normal', document)
             latencySimplyTranslateElement.removeEventListener("click", reloadWindow);
         });
     }
@@ -185,17 +119,7 @@ latencyLingvaElement.addEventListener("click",
         commonHelper.testLatency(latencyLingvaLabel, redirects.lingva.normal).then(r => {
             browser.storage.local.set({ lingvaLatency: r });
             latencyLingvaLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'lingva',
-                'normal',
-                translateHelper,
-                document,
-                translateHelper.getLingvaNormalRedirectsChecks,
-                translateHelper.setLingvaNormalRedirectsChecks,
-                translateHelper.getLingvaNormalCustomRedirects,
-                translateHelper.setLingvaNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('translate', 'lingva', 'normal', document);
             latencyLingvaElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/twitter/twitter.js b/src/pages/options/twitter/twitter.js
index b77f5ecc..2fcf63c5 100644
--- a/src/pages/options/twitter/twitter.js
+++ b/src/pages/options/twitter/twitter.js
@@ -50,7 +50,7 @@ browser.storage.local.get(
         bypassWatchOnTwitterElement.checked = r.bypassWatchOnTwitter;
         protocolElement.value = r.twitterProtocol;
         changeProtocolSettings(r.twitterProtocol);
-        
+
         // Display
         theme.value = r.nitterTheme;
         infiniteScroll.checked = r.nitterInfiniteScroll;
@@ -61,7 +61,7 @@ browser.storage.local.get(
         hidePins.checked = r.nitterHidePins;
         hideReplies.checked = r.nitterHideReplies;
         squareAvatars.checked = r.nitterSquareAvatars;
-        
+
         // Media
         mp4Playback.checked = r.nitterMp4Playback;
         hlsPlayback.checked = r.nitterHlsPlayback;
@@ -96,7 +96,7 @@ document.addEventListener("change", async () => {
         nitterMuteVideos: muteVideos.checked,
         nitterAutoplayGifs: autoplayGifs.checked,
     });
-    init();
+    changeProtocolSettings(protocolElement.value);
 })
 
 function changeProtocolSettings(protocol) {
@@ -116,8 +116,8 @@ function changeProtocolSettings(protocol) {
         for (const item of customSettingsDivElement) item.style.display = 'none';
 }
 
-// commonHelper.processDefaultCustomInstances('nitter', 'normal', twitterHelper, document);
-// commonHelper.processDefaultCustomInstances('nitter', 'tor', twitterHelper, document)
+commonHelper.processDefaultCustomInstances('twitter', 'nitter', 'normal', document);
+commonHelper.processDefaultCustomInstances('twitter', 'nitter', 'tor', document)
 window.onblur = twitterHelper.initNitterCookies;
 
 let latencyElement = document.getElementById("latency");
@@ -133,7 +133,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.nitter.normal).then(r => {
             browser.storage.local.set({ nitterLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('nitter', 'normal', twitterHelper, document)
+            commonHelper.processDefaultCustomInstances('twitter', 'nitter', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/wikipedia/wikipedia.js b/src/pages/options/wikipedia/wikipedia.js
index 0d9a1a6c..8d9af92a 100644
--- a/src/pages/options/wikipedia/wikipedia.js
+++ b/src/pages/options/wikipedia/wikipedia.js
@@ -44,9 +44,9 @@ function changeProtocolSettings(protocol) {
         i2pDiv.style.display = 'block';
     }
 }
-commonHelper.processDefaultCustomInstances('wikiless', 'normal', wikipediaHelper, document);
-commonHelper.processDefaultCustomInstances('wikiless', 'tor', wikipediaHelper, document)
-commonHelper.processDefaultCustomInstances('wikiless', 'i2p', wikipediaHelper, document)
+commonHelper.processDefaultCustomInstances('wikipedia' ,'wikiless', 'normal', document);
+commonHelper.processDefaultCustomInstances('wikipedia' ,'wikiless', 'tor',  document);
+commonHelper.processDefaultCustomInstances('wikipedia' ,'wikiless', 'i2p',  document);
 
 window.onblur = wikipediaHelper.initWikilessCookies;
 
@@ -63,7 +63,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.wikiless.normal).then(r => {
             browser.storage.local.set({ wikilessLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('wikiless', 'normal', wikipediaHelper, document)
+            commonHelper.processDefaultCustomInstances('wikipedia' ,'wikiless', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/youtube/invidious.js b/src/pages/options/youtube/invidious.js
index d314607e..fb1ddff7 100644
--- a/src/pages/options/youtube/invidious.js
+++ b/src/pages/options/youtube/invidious.js
@@ -80,84 +80,82 @@ invidious.addEventListener("change", async _ => {
         invidiousDefaultHome: default_home.value,
         invidiousFeedMenuList: feedMenuList,
       });
-      init();
     }
   )
 });
 
-function init() {
-  browser.storage.local.get(
-    [
-      "youtubeListen",
-      "youtubeVolume",
-      "youtubeAutoplay",
-      "invidiousQuality",
-      "invidiousAlwaysProxy",
-      "invidiousQuality",
-      "invidiousPlayerStyle",
-      "invidiousVideoLoop",
-      "invidiousContinueAutoplay",
-      "invidiousContinue",
-      "invidiousSpeed",
-      "invidiousQualityDash",
-      "invidiousComments",
-      "invidiousCaptions",
-      "invidiousRelatedVideos",
-      "invidiousAnnotations",
-      "invidiousExtendDesc",
-      "invidiousVrMode",
-      "invidiousSavePlayerPos",
-      "invidiousRegion",
-      "invidiousDarkMode",
-      "invidiousThinMode",
-      "invidiousDefaultHome",
-      "invidiousFeedMenuList",
-    ],
-    r => {
-      videoLoop.checked = r.invidiousVideoLoop;
-      autoplay.checked = r.youtubeAutoplay;
-      playerStyle.value = r.invidiousPlayerStyle;
-
-      continueAutoplay.checked = r.invidiousContinueAutoplay;
-      invidiousContinue.checked = r.invidiousContinue;
-      alwaysProxy.checked = r.invidiousAlwaysProxy;
-      youtubeListen.checked = r.youtubeListen;
-
-      speed.value = r.invidiousSpeed;
-      quality.value = r.invidiousQuality;
-      qualityDash.value = r.invidiousQualityDash;
-
-      volume.value = r.youtubeVolume;
-      volumeValue.textContent = `${r.youtubeVolume}%`;
-
-      comments0.value = r.invidiousComments[0];
-      comments1.value = r.invidiousComments[1];
-
-      captions0.value = r.invidiousCaptions[0];
-      captions1.value = r.invidiousCaptions[1];
-      captions2.value = r.invidiousCaptions[2];
-
-      relatedVideo.checked = r.invidiousRelatedVideos;
-      annotations.checked = r.invidiousAnnotations;
-      extendDesc.checked = r.invidiousExtendDesc;
-      vrMode.checked = r.invidiousVrMode;
-      savePlayerPos.checked = r.invidiousSavePlayerPos;
-
-      region.value = r.invidiousRegion;
-      darkMode.value = r.invidiousDarkMode;
-      thin_mode.checked = r.invidiousThinMode;
-      default_home.value = r.invidiousDefaultHome;
-
-      feed_menu0.value = r.invidiousFeedMenuList[0];
-      feed_menu1.value = r.invidiousFeedMenuList[1];
-
-      commonHelper.processDefaultCustomInstances('invidious', 'normal', youtubeHelper, document);
-      commonHelper.processDefaultCustomInstances('invidious', 'tor', youtubeHelper, document);
-    }
-  )
-}
+browser.storage.local.get(
+  [
+    "youtubeListen",
+    "youtubeVolume",
+    "youtubeAutoplay",
+    "invidiousQuality",
+    "invidiousAlwaysProxy",
+    "invidiousQuality",
+    "invidiousPlayerStyle",
+    "invidiousVideoLoop",
+    "invidiousContinueAutoplay",
+    "invidiousContinue",
+    "invidiousSpeed",
+    "invidiousQualityDash",
+    "invidiousComments",
+    "invidiousCaptions",
+    "invidiousRelatedVideos",
+    "invidiousAnnotations",
+    "invidiousExtendDesc",
+    "invidiousVrMode",
+    "invidiousSavePlayerPos",
+    "invidiousRegion",
+    "invidiousDarkMode",
+    "invidiousThinMode",
+    "invidiousDefaultHome",
+    "invidiousFeedMenuList",
+  ],
+  r => {
+    videoLoop.checked = r.invidiousVideoLoop;
+    autoplay.checked = r.youtubeAutoplay;
+    playerStyle.value = r.invidiousPlayerStyle;
+
+    continueAutoplay.checked = r.invidiousContinueAutoplay;
+    invidiousContinue.checked = r.invidiousContinue;
+    alwaysProxy.checked = r.invidiousAlwaysProxy;
+    youtubeListen.checked = r.youtubeListen;
+
+    speed.value = r.invidiousSpeed;
+    quality.value = r.invidiousQuality;
+    qualityDash.value = r.invidiousQualityDash;
+
+    volume.value = r.youtubeVolume;
+    volumeValue.textContent = `${r.youtubeVolume}%`;
+
+    comments0.value = r.invidiousComments[0];
+    comments1.value = r.invidiousComments[1];
+
+    captions0.value = r.invidiousCaptions[0];
+    captions1.value = r.invidiousCaptions[1];
+    captions2.value = r.invidiousCaptions[2];
+
+    relatedVideo.checked = r.invidiousRelatedVideos;
+    annotations.checked = r.invidiousAnnotations;
+    extendDesc.checked = r.invidiousExtendDesc;
+    vrMode.checked = r.invidiousVrMode;
+    savePlayerPos.checked = r.invidiousSavePlayerPos;
+
+    region.value = r.invidiousRegion;
+    darkMode.value = r.invidiousDarkMode;
+    thin_mode.checked = r.invidiousThinMode;
+    default_home.value = r.invidiousDefaultHome;
+
+    feed_menu0.value = r.invidiousFeedMenuList[0];
+    feed_menu1.value = r.invidiousFeedMenuList[1];
+
+
+  }
+)
+
+commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document);
+commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'tor', document);
 
-init();
 
 let latencyInvidiousElement = document.getElementById("latency-invidious");
 let latencyInvidiousLabel = document.getElementById("latency-invidious-label");
@@ -172,7 +170,7 @@ latencyInvidiousElement.addEventListener("click",
     commonHelper.testLatency(latencyInvidiousLabel, redirects.invidious.normal).then(r => {
       browser.storage.local.set({ invidiousLatency: r });
       latencyInvidiousLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances('invidious', 'normal', youtubeHelper, document);
+      commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document);
       latencyInvidiousElement.removeEventListener("click", reloadWindow);
     });
   }
diff --git a/src/pages/options/youtube/piped.js b/src/pages/options/youtube/piped.js
index 6e30b8e6..d8ebe2a4 100644
--- a/src/pages/options/youtube/piped.js
+++ b/src/pages/options/youtube/piped.js
@@ -76,65 +76,61 @@ piped.addEventListener("change", async () => {
         youtubeListen: pipedListen.checked,
         pipedSelectedSkip: selectSkip,
     });
-    init();
 });
 
-async function init() {
-    await browser.storage.local.get(
-        [
-            "youtubeVolume",
-            "youtubeAutoplay",
-            "youtubeListen",
+await browser.storage.local.get(
+    [
+        "youtubeVolume",
+        "youtubeAutoplay",
+        "youtubeListen",
 
-            "pipedBufferGoal",
-            "pipedComments",
-            "pipedDisableLBRY",
-            "pipedEnabledCodecs",
-            "pipedHomepage",
-            "pipedMinimizeDescription",
-            "pipedProxyLBRY",
-            "pipedQuality",
-            "pipedRegion",
-            "pipedSelectedSkip",
-            "pipedSponsorblock",
-            "pipedDdlTheme",
-            "pipedWatchHistory",
-        ],
-        r => {
-            pipedSponsorblock.checked = r.pipedSponsorblock;
-            pipedDdlTheme.value = r.pipedDdlTheme;
-            selectSkip = r.pipedSelectedSkip;
-            pipedSelectedSkipSponsor.checked = selectSkip.includes('sponsor');
-            pipedSelectedSkipIntro.checked = selectSkip.includes('intro');
-            pipedSelectedSkipOutro.checked = selectSkip.includes('outro');
-            pipedSelectedSkipPreview.checked = selectSkip.includes('preview');
-            autoplay.checked = r.youtubeAutoplay;
-            pipedSelectedSkipInteraction.checked = selectSkip.includes('interaction');
-            pipedSelectedSkipSelfpromo.checked = selectSkip.includes('selfpromo');
-            pipedSelectedSkipMusicOfftopic.checked = selectSkip.includes('music_offtopic');
-            pipedSelectedSkipPoiHighlight.checked = selectSkip.includes('poi_highlight');
-            pipedSelectedSkipFiller.checked = selectSkip.includes('filler');
-            pipedListen.checked = r.youtubeListen;
-            pipedQuality.value = r.pipedQuality;
-            pipedBufferGoal.value = r.pipedBufferGoal;
-            pipedRegion.value = r.pipedRegion;
-            pipedHomepage.value = r.pipedHomepage;
-            pipedComments.checked = r.pipedComments;
-            pipedMinimizeDescription.checked = r.pipedMinimizeDescription;
-            pipedWatchHistory.checked = r.pipedWatchHistory;
-            pipedEnabledCodecs.value = r.pipedEnabledCodecs;
-            pipedDisableLBRY.checked = r.pipedDisableLBRY;
-            pipedProxyLBRY.checked = r.pipedProxyLBRY;
+        "pipedBufferGoal",
+        "pipedComments",
+        "pipedDisableLBRY",
+        "pipedEnabledCodecs",
+        "pipedHomepage",
+        "pipedMinimizeDescription",
+        "pipedProxyLBRY",
+        "pipedQuality",
+        "pipedRegion",
+        "pipedSelectedSkip",
+        "pipedSponsorblock",
+        "pipedDdlTheme",
+        "pipedWatchHistory",
+    ],
+    r => {
+        pipedSponsorblock.checked = r.pipedSponsorblock;
+        pipedDdlTheme.value = r.pipedDdlTheme;
+        selectSkip = r.pipedSelectedSkip;
+        pipedSelectedSkipSponsor.checked = selectSkip.includes('sponsor');
+        pipedSelectedSkipIntro.checked = selectSkip.includes('intro');
+        pipedSelectedSkipOutro.checked = selectSkip.includes('outro');
+        pipedSelectedSkipPreview.checked = selectSkip.includes('preview');
+        autoplay.checked = r.youtubeAutoplay;
+        pipedSelectedSkipInteraction.checked = selectSkip.includes('interaction');
+        pipedSelectedSkipSelfpromo.checked = selectSkip.includes('selfpromo');
+        pipedSelectedSkipMusicOfftopic.checked = selectSkip.includes('music_offtopic');
+        pipedSelectedSkipPoiHighlight.checked = selectSkip.includes('poi_highlight');
+        pipedSelectedSkipFiller.checked = selectSkip.includes('filler');
+        pipedListen.checked = r.youtubeListen;
+        pipedQuality.value = r.pipedQuality;
+        pipedBufferGoal.value = r.pipedBufferGoal;
+        pipedRegion.value = r.pipedRegion;
+        pipedHomepage.value = r.pipedHomepage;
+        pipedComments.checked = r.pipedComments;
+        pipedMinimizeDescription.checked = r.pipedMinimizeDescription;
+        pipedWatchHistory.checked = r.pipedWatchHistory;
+        pipedEnabledCodecs.value = r.pipedEnabledCodecs;
+        pipedDisableLBRY.checked = r.pipedDisableLBRY;
+        pipedProxyLBRY.checked = r.pipedProxyLBRY;
 
-            volume.value = r.youtubeVolume;
-            volumeValue.textContent = `${r.youtubeVolume}%`;
+        volume.value = r.youtubeVolume;
+        volumeValue.textContent = `${r.youtubeVolume}%`;
+    }
+);
 
-            commonHelper.processDefaultCustomInstances('piped', 'normal', youtubeHelper, document);
-            commonHelper.processDefaultCustomInstances('piped', 'tor', youtubeHelper, document);
-        }
-    );
-}
-init();
+commonHelper.processDefaultCustomInstances('youtube', 'piped', 'normal', document);
+commonHelper.processDefaultCustomInstances('youtube', 'piped', 'tor', document);
 
 let latencyPipedElement = document.getElementById("latency-piped");
 let latencyPipedLabel = document.getElementById("latency-piped-label");
@@ -149,7 +145,7 @@ latencyPipedElement.addEventListener("click",
         commonHelper.testLatency(latencyPipedLabel, redirects.piped.normal).then(r => {
             browser.storage.local.set({ pipedLatency: r });
             latencyPipedLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('piped', 'normal', youtubeHelper, document);
+            commonHelper.processDefaultCustomInstances('youtube', 'piped', 'normal', document);
             latencyPipedElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/youtube/pipedMaterial.js b/src/pages/options/youtube/pipedMaterial.js
index 7c647b18..3dc0e677 100644
--- a/src/pages/options/youtube/pipedMaterial.js
+++ b/src/pages/options/youtube/pipedMaterial.js
@@ -67,46 +67,43 @@ pipedMaterialElement.addEventListener("change", async () => {
     init();
 });
 
-function init() {
-    browser.storage.local.get(
-        [
-            "youtubeAutoplay",
-            "youtubeVolume",
-            "youtubeListen",
-
-            "pipedDisableLBRY",
-            "pipedProxyLBRY",
-            "pipedSelectedSkip",
-            "pipedSponsorblock",
-
-            "pipedMaterialSkipToLastPoint",
-        ],
-        r => {
-            autoplayElement.checked = r.youtubeAutoplay;
-
-            listenElement.checked = r.youtubeListen;
-            disableLBRYElement.checked = r.pipedDisableLBRY;
-            proxyLBRYElement.checked = r.pipedProxyLBRY;
-            sponsorblockElement.checked = r.pipedSponsorblock;
-            skipToLastPointElement.checked = r.pipedMaterialSkipToLastPoint;
-
-            selectSkip = r.pipedSelectedSkip;
-            selectedSkipSponsorElement.checked = selectSkip.includes('sponsors');
-            selectedSkipIntroElement.checked = selectSkip.includes('intro');
-            selectedSkipOutroElement.checked = selectSkip.includes('outro');
-            selectedSkipPreviewElement.checked = selectSkip.includes('preview');
-            selectedSkipInteractionElement.checked = selectSkip.includes('interaction');
-            selectedSkipSelfpromoElement.checked = selectSkip.includes('selfpromo');
-            selectedSkipMusicOfftopicElement.checked = selectSkip.includes('music_offtopic');
-
-            volumeElement.value = r.youtubeVolume;
-            volumeValueElement.textContent = `${r.youtubeVolume}%`;
-
-            commonHelper.processDefaultCustomInstances('pipedMaterial', 'normal', youtubeHelper, document);
-            commonHelper.processDefaultCustomInstances('pipedMaterial', 'tor', youtubeHelper, document);
-        });
-}
-init();
+browser.storage.local.get(
+    [
+        "youtubeAutoplay",
+        "youtubeVolume",
+        "youtubeListen",
+
+        "pipedDisableLBRY",
+        "pipedProxyLBRY",
+        "pipedSelectedSkip",
+        "pipedSponsorblock",
+
+        "pipedMaterialSkipToLastPoint",
+    ],
+    r => {
+        autoplayElement.checked = r.youtubeAutoplay;
+
+        listenElement.checked = r.youtubeListen;
+        disableLBRYElement.checked = r.pipedDisableLBRY;
+        proxyLBRYElement.checked = r.pipedProxyLBRY;
+        sponsorblockElement.checked = r.pipedSponsorblock;
+        skipToLastPointElement.checked = r.pipedMaterialSkipToLastPoint;
+
+        selectSkip = r.pipedSelectedSkip;
+        selectedSkipSponsorElement.checked = selectSkip.includes('sponsors');
+        selectedSkipIntroElement.checked = selectSkip.includes('intro');
+        selectedSkipOutroElement.checked = selectSkip.includes('outro');
+        selectedSkipPreviewElement.checked = selectSkip.includes('preview');
+        selectedSkipInteractionElement.checked = selectSkip.includes('interaction');
+        selectedSkipSelfpromoElement.checked = selectSkip.includes('selfpromo');
+        selectedSkipMusicOfftopicElement.checked = selectSkip.includes('music_offtopic');
+
+        volumeElement.value = r.youtubeVolume;
+        volumeValueElement.textContent = `${r.youtubeVolume}%`;
+    });
+
+commonHelper.processDefaultCustomInstances('youtube' ,'pipedMaterial', 'normal',  document);
+commonHelper.processDefaultCustomInstances('youtube' ,'pipedMaterial', 'tor',  document);
 
 let latencyPipedMaterialElement = document.getElementById("latency-pipedMaterial");
 let latencyPipedMaterialLabel = document.getElementById("latency-pipedMaterial-label");
@@ -121,7 +118,7 @@ latencyPipedMaterialElement.addEventListener("click",
         commonHelper.testLatency(latencyPipedMaterialLabel, redirects.pipedMaterial.normal).then(r => {
             browser.storage.local.set({ pipedMaterialLatency: r });
             latencyPipedMaterialLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('pipedMaterial', 'normal', youtubeHelper, document);
+            commonHelper.processDefaultCustomInstances('youtube' ,'pipedMaterial', 'normal',  document);
             latencyPipedMaterialElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/youtubeMusic/youtubeMusic.js b/src/pages/options/youtubeMusic/youtubeMusic.js
index 54a6f8d6..518c651d 100644
--- a/src/pages/options/youtubeMusic/youtubeMusic.js
+++ b/src/pages/options/youtubeMusic/youtubeMusic.js
@@ -18,7 +18,7 @@ document.addEventListener("change", async () => {
     })
 })
 
-commonHelper.processDefaultCustomInstances('beatbump', 'normal', youtubeMusicHelper, document);
+commonHelper.processDefaultCustomInstances('youtubeMusic', 'beatbump', 'normal', document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -33,7 +33,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.beatbump.normal).then(r => {
             browser.storage.local.set({ beatbumpLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances('beatbump', 'normal', youtubeMusicHelper, document)
+            commonHelper.processDefaultCustomInstances('youtubeMusic', 'beatbump', 'normal', document);
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }