about summary refs log tree commit diff stats
path: root/src/pages/options
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/options')
-rw-r--r--src/pages/options/general/general.html5
-rw-r--r--src/pages/options/imgur/imgur.html1
-rw-r--r--src/pages/options/imgur/imgur.js2
-rw-r--r--src/pages/options/instagram/instagram.html1
-rw-r--r--src/pages/options/lbry/lbry.html1
-rw-r--r--src/pages/options/lbry/lbry.js68
-rw-r--r--src/pages/options/maps/maps.html1
-rw-r--r--src/pages/options/maps/maps.js24
-rw-r--r--src/pages/options/medium/medium.html1
-rw-r--r--src/pages/options/medium/medium.js79
-rw-r--r--src/pages/options/peertube/peertube.html1
-rw-r--r--src/pages/options/peertube/peertube.js64
-rw-r--r--src/pages/options/pixiv/pixiv.html135
-rw-r--r--src/pages/options/pixiv/pixiv.js93
-rw-r--r--src/pages/options/reddit/reddit.html2
-rw-r--r--src/pages/options/reddit/reddit.js110
-rw-r--r--src/pages/options/search/search.html1
-rw-r--r--src/pages/options/search/search.js258
-rw-r--r--src/pages/options/sendTargets/sendTargets.html1
-rw-r--r--src/pages/options/sendTargets/sendTargets.js76
-rw-r--r--src/pages/options/speedtest/speedtest.html1
-rw-r--r--src/pages/options/speedtest/speedtest.js76
-rw-r--r--src/pages/options/spotify/spotify.html29
-rw-r--r--src/pages/options/spotify/spotify.js75
-rw-r--r--src/pages/options/tiktok/tiktok.html1
-rw-r--r--src/pages/options/tiktok/tiktok.js112
-rw-r--r--src/pages/options/translate/translate.html1
-rw-r--r--src/pages/options/twitter/twitter.html1
-rw-r--r--src/pages/options/twitter/twitter.js116
-rw-r--r--src/pages/options/wikipedia/wikipedia.html1
-rw-r--r--src/pages/options/wikipedia/wikipedia.js89
-rw-r--r--src/pages/options/youtube/youtube.html3
-rw-r--r--src/pages/options/youtubeMusic/youtubeMusic.html1
-rw-r--r--src/pages/options/youtubeMusic/youtubeMusic.js44
34 files changed, 374 insertions, 1100 deletions
diff --git a/src/pages/options/general/general.html b/src/pages/options/general/general.html
index e27ff9d4..615ccee3 100644
--- a/src/pages/options/general/general.html
+++ b/src/pages/options/general/general.html
@@ -22,7 +22,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
@@ -153,10 +152,6 @@
         <input id="reddit" type="checkbox">
       </div>
       <div> 
-        <div> <img src="../../../assets/images/pixiv-icon.svg">Pixiv</div>
-        <input id="pixiv" type="checkbox">
-      </div>
-      <div> 
         <div> <img src="../../../assets/images/spotify-icon.png">Spotify</div>
         <input id="spotify" type="checkbox">
       </div>
diff --git a/src/pages/options/imgur/imgur.html b/src/pages/options/imgur/imgur.html
index a97c1c28..2f959996 100644
--- a/src/pages/options/imgur/imgur.html
+++ b/src/pages/options/imgur/imgur.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a class="selected" href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/imgur/imgur.js b/src/pages/options/imgur/imgur.js
index 8d4428cf..2830f665 100644
--- a/src/pages/options/imgur/imgur.js
+++ b/src/pages/options/imgur/imgur.js
@@ -42,7 +42,7 @@ function init() {
             ],
             r => {
                 disableImgurElement.checked = !r.disableImgur;
-                protocol.value = r.imgurProtocol;
+                protocolElement.value = r.imgurProtocol;
                 changeProtocolSettings(r.imgurProtocol);
             }
         );
diff --git a/src/pages/options/instagram/instagram.html b/src/pages/options/instagram/instagram.html
index bc52cd3b..9ff2651c 100644
--- a/src/pages/options/instagram/instagram.html
+++ b/src/pages/options/instagram/instagram.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/lbry/lbry.html b/src/pages/options/lbry/lbry.html
index d5d459f7..4b6033aa 100644
--- a/src/pages/options/lbry/lbry.html
+++ b/src/pages/options/lbry/lbry.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/lbry/lbry.js b/src/pages/options/lbry/lbry.js
index 4511373c..3ab04369 100644
--- a/src/pages/options/lbry/lbry.js
+++ b/src/pages/options/lbry/lbry.js
@@ -2,18 +2,15 @@ import lbryHelper from "../../../assets/javascripts/helpers/lbry.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableLbryElement = document.getElementById("disable-lbry");
-disableLbryElement.addEventListener("change",
-    (event) => lbryHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    event => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        lbryHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
-    }
-);
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableLbryTargets: !lbryHelper.checked,
+        lbryTargetsProtocol: protocolElement.value,
+    });
+    changeProtocolSettings(protocolElement.value)
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,37 +25,20 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-lbryHelper.init().then(() => {
-    disableLbryElement.checked = !lbryHelper.getDisable();
+browser.storage.local.get(
+    [
+        "disableLbryTargets",
+        "lbryTargetsProtocol"
+    ],
+    r => {
+    disableLbryElement.checked = !r.disableLbryTargets;
 
-    let protocol = lbryHelper.getProtocol();
+    let protocol = r.lbryTargetsProtocol;
     protocolElement.value = protocol;
     changeProtocolSettings(protocol);
 
-    browser.storage.local.get("librarianLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'librarian',
-            'normal',
-            lbryHelper,
-            document,
-            lbryHelper.getLibrarianNormalRedirectsChecks,
-            lbryHelper.setLibrarianNormalRedirectsChecks,
-            lbryHelper.getLibrarianNormalCustomRedirects,
-            lbryHelper.setLibrarianNormalCustomRedirects,
-            r.librarianLatency,
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'librarian',
-        'tor',
-        lbryHelper,
-        document,
-        lbryHelper.getLibrarianTorRedirectsChecks,
-        lbryHelper.setLibrarianTorRedirectsChecks,
-        lbryHelper.getLibrarianTorCustomRedirects,
-        lbryHelper.setLibrarianTorCustomRedirects
-    )
+    commonHelper.processDefaultCustomInstances('librarian', 'normal', lbryHelper, document);
+    commonHelper.processDefaultCustomInstances('librarian', 'tor', lbryHelper, document)
 })
 
 
@@ -75,17 +55,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,
-                lbryHelper.getLibrarianNormalRedirectsChecks,
-                lbryHelper.setLibrarianNormalRedirectsChecks,
-                lbryHelper.getLibrarianNormalCustomRedirects,
-                lbryHelper.setLibrarianNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('librarian', 'normal', lbryHelper, document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/maps/maps.html b/src/pages/options/maps/maps.html
index d4288761..fe18892a 100644
--- a/src/pages/options/maps/maps.html
+++ b/src/pages/options/maps/maps.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/maps/maps.js b/src/pages/options/maps/maps.js
index 17c628dd..982b7980 100644
--- a/src/pages/options/maps/maps.js
+++ b/src/pages/options/maps/maps.js
@@ -33,17 +33,7 @@ mapsHelper.init().then(() => {
     changeFrontendsSettings(frontend);
 
     browser.storage.local.get("facilLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'facil',
-            'normal',
-            mapsHelper,
-            document,
-            mapsHelper.getFacilNormalRedirectsChecks,
-            mapsHelper.setFacilNormalRedirectsChecks,
-            mapsHelper.getFacilNormalCustomRedirects,
-            mapsHelper.setFacilNormalCustomRedirects,
-            r.facilLatency,
-        )
+        commonHelper.processDefaultCustomInstances('facil', 'normal', mapsHelper, document, r.facilLatency)
     })
 })
 
@@ -60,17 +50,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,
-                mapsHelper.getFacilNormalRedirectsChecks,
-                mapsHelper.setFacilNormalRedirectsChecks,
-                mapsHelper.getFacilNormalCustomRedirects,
-                mapsHelper.setFacilNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('facil', 'normal', mapsHelper, document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/medium/medium.html b/src/pages/options/medium/medium.html
index 303524f7..e7c0a336 100644
--- a/src/pages/options/medium/medium.html
+++ b/src/pages/options/medium/medium.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/medium/medium.js b/src/pages/options/medium/medium.js
index d79c1de5..4fb04092 100644
--- a/src/pages/options/medium/medium.js
+++ b/src/pages/options/medium/medium.js
@@ -2,18 +2,32 @@ import mediumHelper from "../../../assets/javascripts/helpers/medium.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableMediumElement = document.getElementById("disable-medium");
-disableMediumElement.addEventListener("change",
-    (event) => mediumHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        mediumHelper.setProtocol(protocol);
+
+browser.storage.local.get(
+    [
+        "disableMedium",
+        "mediumProtocol"
+    ],
+    r => {
+        disableMediumElement.checked = !r.disableMedium;
+
+        let protocol = r.mediumProtocol;
+        protocolElement.value = protocol;
         changeProtocolSettings(protocol);
+
+        commonHelper.processDefaultCustomInstances('scribe', 'normal', mediumHelper, document)
+        commonHelper.processDefaultCustomInstances('scribe', 'tor', mediumHelper, document)
     }
-);
+)
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableMedium: !disableMediumElement.checked,
+        mediumProtocol: protocolElement.value,
+    })
+    changeProtocolSettings(protocolElement.value);
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,41 +42,6 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-
-mediumHelper.init().then(() => {
-    disableMediumElement.checked = !mediumHelper.getDisable();
-
-    let protocol = mediumHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-
-    browser.storage.local.get("scribeLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'scribe',
-            'normal',
-            mediumHelper,
-            document,
-            mediumHelper.getScribeNormalRedirectsChecks,
-            mediumHelper.setScribeNormalRedirectsChecks,
-            mediumHelper.getScribeNormalCustomRedirects,
-            mediumHelper.setScribeNormalCustomRedirects,
-            r.scribeLatency,
-        )
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'scribe',
-        'tor',
-        mediumHelper,
-        document,
-        mediumHelper.getScribeTorRedirectsChecks,
-        mediumHelper.setScribeTorRedirectsChecks,
-        mediumHelper.getScribeTorCustomRedirects,
-        mediumHelper.setScribeTorCustomRedirects
-    )
-})
-
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
 latencyElement.addEventListener("click",
@@ -76,17 +55,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,
-                mediumHelper.getScribeNormalRedirectsChecks,
-                mediumHelper.setScribeNormalRedirectsChecks,
-                mediumHelper.getScribeNormalCustomRedirects,
-                mediumHelper.setScribeNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('scribe', 'normal', mediumHelper, document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/peertube/peertube.html b/src/pages/options/peertube/peertube.html
index dd034bed..1a4bfa66 100644
--- a/src/pages/options/peertube/peertube.html
+++ b/src/pages/options/peertube/peertube.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/peertube/peertube.js b/src/pages/options/peertube/peertube.js
index 0b7a09e6..419523d0 100644
--- a/src/pages/options/peertube/peertube.js
+++ b/src/pages/options/peertube/peertube.js
@@ -2,18 +2,31 @@ import peertubeHelper from "../../../assets/javascripts/helpers/peertube.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disablePeertubeElement = document.getElementById("disable-peertube");
-disablePeertubeElement.addEventListener("change",
-    (event) => peertubeHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        peertubeHelper.setProtocol(protocol);
+browser.storage.local.get(
+    [
+        "disablePeertubeTargets",
+        "peertubeTargetsProtocol"
+    ],
+    r => {
+        disablePeertubeElement.checked = !r.disablePeertubeTargets;
+
+        let protocol = peertubeTargetsProtocol;
+        protocolElement.value = protocol;
         changeProtocolSettings(protocol);
+
+        commonHelper.processDefaultCustomInstances('simpleertube', 'normal', peertubeHelper, document);
+        commonHelper.processDefaultCustomInstances('simpleertube', 'tor', peertubeHelper, document)
     }
-);
+)
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disablePeertubeTargets: !disablePeertubeElement.checked,
+        peertubeTargetsProtocol: protocolElement.value
+    })
+    changeProtocolSettings(protocolElement.value);
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,39 +41,6 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-peertubeHelper.init().then(() => {
-    disablePeertubeElement.checked = !peertubeHelper.getDisable();
-
-    let protocol = peertubeHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    browser.storage.local.get("simpleertubeLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'simpleertube',
-            'normal',
-            peertubeHelper,
-            document,
-            peertubeHelper.getSimpleertubeNormalRedirectsChecks,
-            peertubeHelper.setSimpleertubeNormalRedirectsChecks,
-            peertubeHelper.getSimpleertubeNormalCustomRedirects,
-            peertubeHelper.setSimpleertubeNormalCustomRedirects
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'simpleertube',
-        'tor',
-        peertubeHelper,
-        document,
-        peertubeHelper.getSimpleertubeTorRedirectsChecks,
-        peertubeHelper.setSimpleertubeTorRedirectsChecks,
-        peertubeHelper.getSimpleertubeTorCustomRedirects,
-        peertubeHelper.setSimpleertubeTorCustomRedirects
-    )
-})
-
-
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
 latencyElement.addEventListener("click",
diff --git a/src/pages/options/pixiv/pixiv.html b/src/pages/options/pixiv/pixiv.html
deleted file mode 100644
index 7adbcf2c..00000000
--- a/src/pages/options/pixiv/pixiv.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <link rel="icon" type="image/x-icon" href="../../../assets/images/libredirect.svg">
-    <link href="../../stylesheets/styles.css" rel="stylesheet">
-    <title>General</title>
-  </head>
-</html>
-<script type="module" src="../../../assets/javascripts/localise.js"></script>
-<body class="option" dir="auto">
-    <section class="links">
-      <div class="title">
-        <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor">
-          <path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"></path>
-        </svg><a href="../general/general.html" data-localise="__MSG_general__">General</a>
-      </div>
-      <div class="title"> <img src="../../../assets/images/youtube-icon.png"><a href="../youtube/youtube.html" data-localise="__MSG_youtube__">YouTube </a></div>
-      <div class="title"> <img src="../../../assets/images/youtube-music-icon.png"><a href="../youtubeMusic/youtubeMusic.html" data-localise="__MSG_ytmusic__">YT Music</a></div>
-      <div class="title"> <img src="../../../assets/images/twitter-icon.png"><a href="../twitter/twitter.html" data-localise="__MSG_twitter__">Twitter</a></div>
-      <div class="title"> <img src="../../../assets/images/instagram-icon.png"><a href="../instagram/instagram.html" data-localise="__MSG_instagram__">Instagram</a></div>
-      <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
-      <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
-      <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a class="selected" href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
-      <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
-      <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
-      <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
-      <div class="title"> 
-        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
-          <circle cx="500" cy="500" r="500"></circle>
-          <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
-          <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
-        </svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
-      </div>
-      <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
-      <div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
-      <div class="title"> 
-        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
-          <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
-        </svg><a href="../search/search.html" data-localise="__MSG_search__">Search</a>
-      </div>
-      <div class="title"> 
-        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-          <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
-        </svg><a href="../translate/translate.html" data-localise="__MSG_translate__">Translate</a>
-      </div>
-      <div class="title"> 
-        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-          <path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path>
-        </svg><a href="../maps/maps.html" data-localise="__MSG_maps__">Maps</a>
-      </div>
-      <div class="title"> 
-        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-          <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
-        </svg><a href="../sendTargets/sendTargets.html" data-localise="__MSG_sendFiles__">Send Files</a>
-      </div>
-    </section>
-  <section class="option-block">
-    <div class="some-block option-block">
-      <h4 data-localise="__MSG_enable__">Enable</h4>
-      <input id="disable-pixiv" type="checkbox">
-    </div>
-    <div class="some-block option-block">
-      <h4>
-        <x data-localise="__MSG_frontend__">Frontend</x>:<span style="color:red;" data-localise="__MSG_notFullyPrivate__">This isn't a fully private frontend</span>
-      </h4>
-      <select id="maps-frontend">
-        <option value="pixivMoe" data-localise="__MSG_pixivMoe__">pixiv萌え</option>
-      </select>
-    </div>
-    <div class="some-block option-block">
-      <h4 data-localise="__MSG_protocol__">Protocol</h4>
-      <select id="protocol">
-        <option value="normal" data-localise="__MSG_normal__">Normal</option>
-        <option value="tor" data-localise="__MSG_tor__">Tor        </option>
-      </select>
-    </div>
-    <div id="pixivMoe">
-      <hr>
-      <div class="normal">
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
-                </div>
-                <div class="checklist"></div>
-                <hr>
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
-                </div>
-                <form class="custom-instance-form">
-                  <div class="some-block option-block">
-                    <input class="custom-instance" placeholder="https://pixivMoe.com" type="url">
-                    <button class="add add-instance" type="submit">
-                      <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
-                        <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
-                      </svg>
-                    </button>
-                  </div>
-                </form>
-                <div class="checklist custom-checklist"></div>
-                <label class="button button-inline" id="latency-label" for="latency"> 
-                  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-                    <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path>
-                  </svg>&nbsp;
-                  <x data-localise="__MSG_testInstancesLatency__">Test Instances Latency</x>
-                </label>
-                <input class="button button-inline" id="latency" style="display:none;">
-      </div>
-      <div class="tor">
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
-                </div>
-                <div class="checklist"></div>
-                <hr>
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
-                </div>
-                <form class="custom-instance-form">
-                  <div class="some-block option-block">
-                    <input class="custom-instance" placeholder="https://pixivMoe.onion" type="url">
-                    <button class="add add-instance" type="submit">
-                      <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
-                        <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
-                      </svg>
-                    </button>
-                  </div>
-                </form>
-                <div class="checklist custom-checklist"></div>
-      </div>
-    </div>
-  </section>
-  <script type="module" src="../init.js"></script>
-  <script type="module" src="./pixiv.js"></script>
-</body>
\ No newline at end of file
diff --git a/src/pages/options/pixiv/pixiv.js b/src/pages/options/pixiv/pixiv.js
deleted file mode 100644
index fe60734b..00000000
--- a/src/pages/options/pixiv/pixiv.js
+++ /dev/null
@@ -1,93 +0,0 @@
-import pixivHelper from "../../../assets/javascripts/helpers/pixiv.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
-
-let disablePixivElement = document.getElementById("disable-pixiv");
-disablePixivElement.addEventListener("change",
-    (event) => pixivHelper.setDisable(!event.target.checked)
-);
-
-let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        pixivHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
-    }
-);
-
-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';
-    }
-}
-
-pixivHelper.init().then(() => {
-    disablePixivElement.checked = !pixivHelper.getDisable();
-
-    let protocol = pixivHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-
-    browser.storage.local.get("pixivMoeLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'pixivMoe',
-            'normal',
-            pixivHelper,
-            document,
-            pixivHelper.getPixivMoeNormalRedirectsChecks,
-            pixivHelper.setPixivMoeNormalRedirectsChecks,
-            pixivHelper.getPixivMoeNormalCustomRedirects,
-            pixivHelper.setPixivMoeNormalCustomRedirects
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'pixivMoe',
-        'tor',
-        pixivHelper,
-        document,
-        pixivHelper.getPixivMoeTorRedirectsChecks,
-        pixivHelper.setPixivMoeTorRedirectsChecks,
-        pixivHelper.getPixivMoeTorCustomRedirects,
-        pixivHelper.setPixivMoeTorCustomRedirects
-    )
-})
-
-
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await pixivHelper.init();
-        let redirects = pixivHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.pixivMoe.normal).then(r => {
-            browser.storage.local.set({ pixivMoeLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'pixivMoe',
-                'normal',
-                pixivHelper,
-                document,
-                pixivHelper.getPixivMoeNormalRedirectsChecks,
-                pixivHelper.setPixivMoeNormalRedirectsChecks,
-                pixivHelper.getPixivMoeNormalCustomRedirects,
-                pixivHelper.setPixivMoeNormalCustomRedirects,
-                r,
-            );
-            latencyElement.removeEventListener("click", reloadWindow);
-        });
-
-    }
-);
\ No newline at end of file
diff --git a/src/pages/options/reddit/reddit.html b/src/pages/options/reddit/reddit.html
index 47c0b3b2..9ccc130d 100644
--- a/src/pages/options/reddit/reddit.html
+++ b/src/pages/options/reddit/reddit.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a class="selected" href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
@@ -67,7 +66,6 @@
       <select id="reddit-frontend">
         <option value="libreddit">Libreddit</option>
         <option value="teddit">Teddit</option>
-        <option value="old">old.reddit.com</option>
       </select>
     </div>
     <div class="some-block option-block">
diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js
index 47bd1856..3f79eeaa 100644
--- a/src/pages/options/reddit/reddit.js
+++ b/src/pages/options/reddit/reddit.js
@@ -45,11 +45,6 @@ document.addEventListener("change", async () => {
     init();
 })
 
-window.onblur = () => {
-    redditHelper.initLibredditCookies();
-    redditHelper.initTedditCookies();
-}
-
 function changeProtocolSettings(protocol) {
     let normalLibredditDiv = libredditDivElement.getElementsByClassName("normal")[0];
     let torLibredditDiv = libredditDivElement.getElementsByClassName("tor")[0];
@@ -91,56 +86,54 @@ function changeFrontendsSettings(frontend) {
         tedditDivElement.style.display = 'none';
     }
 }
-function init() {
-    browser.storage.local.get(
-        [
-            "disableReddit",
-            "bypassWatchOnReddit",
-            "redditProtocol",
-            "redditFrontend",
-
-            "enableLibredditCustomSettings",
-
-            "redditTheme",
-            "redditFrontPage",
-            "redditLayout",
-            "redditWide",
-            "redditPostSort",
-            "redditCommentSort",
-            "redditShowNsfw",
-            "redditAutoplayVideos",
-            "redditUseHls",
-            "redditHideHlsNotification",
-        ],
-        r => {
-            disableRedditElement.checked = !r.disableReddit
-            bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit
-            protocolElement.value = r.redditProtocol
-            redditFrontendElement.value = r.redditFrontend
-            enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings
-            changeFrontendsSettings(r.redditFrontend);
-            changeProtocolSettings(r.redditProtocol);
-
-            theme.value = r.redditTheme;
-            front_page.value = r.redditFrontPage;
-            layout.value = r.redditLayout;
-            wide.checked = r.redditWide;
-            post_sort.value = r.redditPostSort;
-            comment_sort.value = r.redditCommentSort;
-            show_nsfw.checked = r.redditShowNsfw;
-            autoplay_videos.checked = r.redditAutoplayVideos;
-            use_hls.checked = r.redditUseHls;
-            hide_hls_notification.checked = r.redditHideHlsNotification;
-        }
-    )
-
-    commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document)
-    commonHelper.processDefaultCustomInstances('libreddit', 'tor', redditHelper, document)
-
-    commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
-    commonHelper.processDefaultCustomInstances('teddit', 'tor', redditHelper, document);
-}
-init();
+
+browser.storage.local.get(
+    [
+        "disableReddit",
+        "bypassWatchOnReddit",
+        "redditProtocol",
+        "redditFrontend",
+
+        "enableLibredditCustomSettings",
+
+        "redditTheme",
+        "redditFrontPage",
+        "redditLayout",
+        "redditWide",
+        "redditPostSort",
+        "redditCommentSort",
+        "redditShowNsfw",
+        "redditAutoplayVideos",
+        "redditUseHls",
+        "redditHideHlsNotification",
+    ],
+    r => {
+        disableRedditElement.checked = !r.disableReddit
+        bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit
+        protocolElement.value = r.redditProtocol
+        redditFrontendElement.value = r.redditFrontend
+        enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings
+        changeFrontendsSettings(r.redditFrontend);
+        changeProtocolSettings(r.redditProtocol);
+
+        theme.value = r.redditTheme;
+        front_page.value = r.redditFrontPage;
+        layout.value = r.redditLayout;
+        wide.checked = r.redditWide;
+        post_sort.value = r.redditPostSort;
+        comment_sort.value = r.redditCommentSort;
+        show_nsfw.checked = r.redditShowNsfw;
+        autoplay_videos.checked = r.redditAutoplayVideos;
+        use_hls.checked = r.redditUseHls;
+        hide_hls_notification.checked = r.redditHideHlsNotification;
+    }
+)
+
+commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document)
+commonHelper.processDefaultCustomInstances('libreddit', 'tor', redditHelper, document)
+commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
+commonHelper.processDefaultCustomInstances('teddit', 'tor', redditHelper, document);
+
 
 let latencyLibredditElement = document.getElementById("latency-libreddit");
 let latencyLibredditLabel = document.getElementById("latency-libreddit-label");
@@ -178,4 +171,9 @@ latencyTedditElement.addEventListener("click",
             latencyTedditElement.removeEventListener("click", reloadWindow);
         });
     }
-);
\ No newline at end of file
+);
+
+window.onblur = () => {
+    redditHelper.initLibredditCookies();
+    redditHelper.initTedditCookies();
+}
\ No newline at end of file
diff --git a/src/pages/options/search/search.html b/src/pages/options/search/search.html
index cc1bb006..3c0d9d89 100644
--- a/src/pages/options/search/search.html
+++ b/src/pages/options/search/search.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/search/search.js b/src/pages/options/search/search.js
index 197b17f4..893c3e4f 100644
--- a/src/pages/options/search/search.js
+++ b/src/pages/options/search/search.js
@@ -1,66 +1,75 @@
 import searchHelper from "../../../assets/javascripts/helpers/search.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
+let searxDiv = document.getElementById("searx");
+let searxngDiv = document.getElementById("searxng")
+let whoogleDiv = document.getElementById("whoogle");
+
 let disableSearchElement = document.getElementById("disable-search");
-disableSearchElement.addEventListener("change", event => searchHelper.setDisable(!event.target.checked));
+let searchFrontendElement = document.getElementById("search-frontend");
+let protocolElement = document.getElementById("protocol")
 
+browser.storage.local.get(
+  [
+    "disableSearch",
+    "searchFrontend",
+    "searchProtocol",
+  ],
+  r => {
+    disableSearchElement.checked = !disableSearch;
 
-let searxDivElement = document.getElementById("searx");
-let searxngDivElement = document.getElementById("searxng")
-let whoogleDivElement = document.getElementById("whoogle");
+    searchFrontendElement.value = r.searchFronten;
+    changeFrontendsSettings(r.searchFronten);
 
+    protocolElement.value = r.searchProtocol;
+    changeProtocolSettings(r.searchProtocol);
+  }
+);
+
+document.addEventListener("change", async () => {
+  await browser.storage.local.set({
+    disableSearch: !disableSearchElement.checked,
+    searchFrontend: searchFrontendElement.value,
+    searchProtocol: protocolElement.value,
+  });
+  changeFrontendsSettings(searchFrontendElement.value);
+  changeProtocolSettings(protocolElement.value);
+})
 
 function changeFrontendsSettings(frontend) {
   let SearxWhoogleElement = document.getElementById("searx-whoogle");
   if (frontend == 'searx') {
-    searxDivElement.style.display = 'block';
-    searxngDivElement.style.display = 'none';
-    whoogleDivElement.style.display = 'none';
+    searxDiv.style.display = 'block';
+    searxngDiv.style.display = 'none';
+    whoogleDiv.style.display = 'none';
     SearxWhoogleElement.style.display = 'block';
   }
   else if (frontend == 'searxng') {
-    searxDivElement.style.display = 'none';
-    searxngDivElement.style.display = 'block';
-    whoogleDivElement.style.display = 'none';
+    searxDiv.style.display = 'none';
+    searxngDiv.style.display = 'block';
+    whoogleDiv.style.display = 'none';
     SearxWhoogleElement.style.display = 'block';
   }
   else if (frontend == 'whoogle') {
-    searxDivElement.style.display = 'none';
-    searxngDivElement.style.display = 'none';
-    whoogleDivElement.style.display = 'block';
+    searxDiv.style.display = 'none';
+    searxngDiv.style.display = 'none';
+    whoogleDiv.style.display = 'block';
     SearxWhoogleElement.style.display = 'block';
   }
 }
-let searchFrontendElement = document.getElementById("search-frontend");
-searchFrontendElement.addEventListener("change",
-  event => {
-    let frontend = event.target.options[searchFrontendElement.selectedIndex].value
-    searchHelper.setFrontend(frontend)
-    changeFrontendsSettings(frontend);
-  }
-);
-
-let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-  event => {
-    let protocol = event.target.options[protocolElement.selectedIndex].value
-    searchHelper.setProtocol(protocol);
-    changeProtocolSettings(protocol);
-  }
-);
 
 function changeProtocolSettings(protocol) {
-  let normalsearxDiv = searxDivElement.getElementsByClassName("normal")[0];
-  let torsearxDiv = searxDivElement.getElementsByClassName("tor")[0];
-  let i2psearxDiv = searxDivElement.getElementsByClassName("i2p")[0];
+  let normalsearxDiv = searxDiv.getElementsByClassName("normal")[0];
+  let torsearxDiv = searxDiv.getElementsByClassName("tor")[0];
+  let i2psearxDiv = searxDiv.getElementsByClassName("i2p")[0];
 
-  let normalsearxngDiv = searxngDivElement.getElementsByClassName("normal")[0];
-  let torsearxngDiv = searxngDivElement.getElementsByClassName("tor")[0];
-  let i2psearxngDiv = searxngDivElement.getElementsByClassName("i2p")[0];
+  let normalsearxngDiv = searxngDiv.getElementsByClassName("normal")[0];
+  let torsearxngDiv = searxngDiv.getElementsByClassName("tor")[0];
+  let i2psearxngDiv = searxngDiv.getElementsByClassName("i2p")[0];
 
-  let normalwhoogleDiv = whoogleDivElement.getElementsByClassName("normal")[0];
-  let torwhoogleDiv = whoogleDivElement.getElementsByClassName("tor")[0];
-  let i2pwhoogleDiv = whoogleDivElement.getElementsByClassName("i2p")[0];
+  let normalwhoogleDiv = whoogleDiv.getElementsByClassName("normal")[0];
+  let torwhoogleDiv = whoogleDiv.getElementsByClassName("tor")[0];
+  let i2pwhoogleDiv = whoogleDiv.getElementsByClassName("i2p")[0];
 
   if (protocol == 'normal') {
     normalsearxDiv.style.display = 'block';
@@ -97,125 +106,15 @@ function changeProtocolSettings(protocol) {
   }
 }
 
-searchHelper.init().then(() => {
-  disableSearchElement.checked = !searchHelper.getDisable();
-  let frontend = searchHelper.getFrontend();
-  searchFrontendElement.value = frontend;
-  changeFrontendsSettings(frontend);
-
-  let protocol = searchHelper.getProtocol();
-  protocolElement.value = protocol;
-  changeProtocolSettings(protocol);
-
-  browser.storage.local.get("searxLatency").then(r => {
-    commonHelper.processDefaultCustomInstances(
-      'searx',
-      'normal',
-      searchHelper,
-      document,
-      searchHelper.getSearxNormalRedirectsChecks,
-      searchHelper.setSearxNormalRedirectsChecks,
-      searchHelper.getSearxNormalCustomRedirects,
-      searchHelper.setSearxNormalCustomRedirects,
-      r.searxLatency
-    );
-  })
-
-  commonHelper.processDefaultCustomInstances(
-    'searx',
-    'tor',
-    searchHelper,
-    document,
-    searchHelper.getSearxTorRedirectsChecks,
-    searchHelper.setSearxTorRedirectsChecks,
-    searchHelper.getSearxTorCustomRedirects,
-    searchHelper.setSearxTorCustomRedirects
-  );
-
-  commonHelper.processDefaultCustomInstances(
-    'searx',
-    'i2p',
-    searchHelper,
-    document,
-    searchHelper.getSearxI2pRedirectsChecks,
-    searchHelper.setSearxI2pRedirectsChecks,
-    searchHelper.getSearxI2pCustomRedirects,
-    searchHelper.setSearxI2pCustomRedirects
-  );
-
-  browser.storage.local.get("searxngLatency").then(r => {
-    commonHelper.processDefaultCustomInstances(
-      'searxng',
-      'normal',
-      searchHelper,
-      document,
-      searchHelper.getSearxngNormalRedirectsChecks,
-      searchHelper.setSearxngNormalRedirectsChecks,
-      searchHelper.getSearxngNormalCustomRedirects,
-      searchHelper.setSearxngNormalCustomRedirects,
-      r.searxngLatency,
-    );
-  })
-
-  commonHelper.processDefaultCustomInstances(
-    'searxng',
-    'tor',
-    searchHelper,
-    document,
-    searchHelper.getSearxngTorRedirectsChecks,
-    searchHelper.setSearxngTorRedirectsChecks,
-    searchHelper.getSearxngTorCustomRedirects,
-    searchHelper.setSearxngTorCustomRedirects
-  );
-
-  commonHelper.processDefaultCustomInstances(
-    'searxng',
-    'i2p',
-    searchHelper,
-    document,
-    searchHelper.getSearxngI2pRedirectsChecks,
-    searchHelper.setSearxngI2pRedirectsChecks,
-    searchHelper.getSearxngI2pCustomRedirects,
-    searchHelper.setSearxngI2pCustomRedirects
-  );
-
-  browser.storage.local.get("whoogleLatency").then(r => {
-    commonHelper.processDefaultCustomInstances(
-      'whoogle',
-      'normal',
-      searchHelper,
-      document,
-      searchHelper.getWhoogleNormalRedirectsChecks,
-      searchHelper.setWhoogleNormalRedirectsChecks,
-      searchHelper.getWhoogleNormalCustomRedirects,
-      searchHelper.setWhoogleNormalCustomRedirects,
-      r.whoogleLatency,
-    );
-  })
-
-  commonHelper.processDefaultCustomInstances(
-    'whoogle',
-    'tor',
-    searchHelper,
-    document,
-    searchHelper.getWhoogleTorRedirectsChecks,
-    searchHelper.setWhoogleTorRedirectsChecks,
-    searchHelper.getWhoogleTorCustomRedirects,
-    searchHelper.setWhoogleTorCustomRedirects
-  );
-
-  commonHelper.processDefaultCustomInstances(
-    'whoogle',
-    'i2p',
-    searchHelper,
-    document,
-    searchHelper.getWhoogleI2pRedirectsChecks,
-    searchHelper.setWhoogleI2pRedirectsChecks,
-    searchHelper.getWhoogleI2pCustomRedirects,
-    searchHelper.setWhoogleI2pCustomRedirects
-  );
-});
-
+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);
 
 let latencySearxElement = document.getElementById("latency-searx");
 let latencySearxLabel = document.getElementById("latency-searx-label");
@@ -230,17 +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,
-        searchHelper.getSearxNormalRedirectsChecks,
-        searchHelper.setSearxNormalRedirectsChecks,
-        searchHelper.getSearxNormalCustomRedirects,
-        searchHelper.setSearxNormalCustomRedirects,
-        r,
-      );
+      commonHelper.processDefaultCustomInstances('searx', 'normal', searchHelper, document);
       latencySearxElement.removeEventListener("click", reloadWindow);
     });
   }
@@ -259,17 +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,
-        searchHelper.getSearxngNormalRedirectsChecks,
-        searchHelper.setSearxngNormalRedirectsChecks,
-        searchHelper.getSearxngNormalCustomRedirects,
-        searchHelper.setSearxngNormalCustomRedirects,
-        r,
-      );
+      commonHelper.processDefaultCustomInstances('searxng', 'normal', searchHelper, document);
       latencySearxngElement.removeEventListener("click", reloadWindow);
     });
   }
@@ -288,18 +167,13 @@ 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,
-        searchHelper.getWhoogleNormalRedirectsChecks,
-        searchHelper.setWhoogleNormalRedirectsChecks,
-        searchHelper.getWhoogleNormalCustomRedirects,
-        searchHelper.setWhoogleNormalCustomRedirects,
-        r,
-      );
+      commonHelper.processDefaultCustomInstances('whoogle', 'normal', searchHelper, document);
       latencyWhoogleElement.removeEventListener("click", reloadWindow);
     });
   }
-);
\ No newline at end of file
+);
+
+window.onblur = () => {
+  searchHelper.initSearxCookies();
+  searchHelper.initSearxngCookies();
+}
\ No newline at end of file
diff --git a/src/pages/options/sendTargets/sendTargets.html b/src/pages/options/sendTargets/sendTargets.html
index c54c1582..b63c8233 100644
--- a/src/pages/options/sendTargets/sendTargets.html
+++ b/src/pages/options/sendTargets/sendTargets.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/sendTargets/sendTargets.js b/src/pages/options/sendTargets/sendTargets.js
index ae6f9e77..dc40f83f 100644
--- a/src/pages/options/sendTargets/sendTargets.js
+++ b/src/pages/options/sendTargets/sendTargets.js
@@ -2,18 +2,28 @@ import sendTargetsHelper from "../../../assets/javascripts/helpers/sendTargets.j
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableSendTargetsElement = document.getElementById("disable-sendTargets");
-disableSendTargetsElement.addEventListener("change",
-    (event) => sendTargetsHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        sendTargetsHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
+
+browser.storage.local.get(
+    [
+        "disableSendTarget",
+        "sendTargetsProtocol",
+    ],
+    r => {
+        disableSendTargetsElement.checked = !r.disableSendTarget;
+
+        protocolElement.value = r.sendTargetsProtocol;
+        changeProtocolSettings(r.sendTargetsProtocol);
     }
-);
+)
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableSendTarget: !disableSendTargetsElement.checked,
+        sendTargetsProtocol: protocolElement.value,
+    })
+    changeProtocolSettings(protocolElement.value);
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,38 +38,8 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-sendTargetsHelper.init().then(() => {
-    disableSendTargetsElement.checked = !sendTargetsHelper.getDisable();
-
-    let protocol = sendTargetsHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    browser.storage.local.get("sendLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'send',
-            'normal',
-            sendTargetsHelper,
-            document,
-            sendTargetsHelper.getSendNormalRedirectsChecks,
-            sendTargetsHelper.setSendNormalRedirectsChecks,
-            sendTargetsHelper.getSendNormalCustomRedirects,
-            sendTargetsHelper.setSendNormalCustomRedirects,
-            r.sendLatency,
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'send',
-        'tor',
-        sendTargetsHelper,
-        document,
-        sendTargetsHelper.getSendTorRedirectsChecks,
-        sendTargetsHelper.setSendTorRedirectsChecks,
-        sendTargetsHelper.getSendTorCustomRedirects,
-        sendTargetsHelper.setSendTorCustomRedirects
-    )
-})
+commonHelper.processDefaultCustomInstances('send', 'normal', sendTargetsHelper, document);
+commonHelper.processDefaultCustomInstances('send', 'tor', sendTargetsHelper, document,)
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -74,17 +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,
-                sendTargetsHelper.getSendNormalRedirectsChecks,
-                sendTargetsHelper.setSendNormalRedirectsChecks,
-                sendTargetsHelper.getSendNormalCustomRedirects,
-                sendTargetsHelper.setSendNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('send', 'normal', sendTargetsHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/speedtest/speedtest.html b/src/pages/options/speedtest/speedtest.html
index 5ac5cdaa..369d226a 100644
--- a/src/pages/options/speedtest/speedtest.html
+++ b/src/pages/options/speedtest/speedtest.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a class="selected" href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/speedtest/speedtest.js b/src/pages/options/speedtest/speedtest.js
index 077d6440..95fa9fea 100644
--- a/src/pages/options/speedtest/speedtest.js
+++ b/src/pages/options/speedtest/speedtest.js
@@ -2,18 +2,28 @@ import speedtestHelper from "../../../assets/javascripts/helpers/speedtest.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableSpeedtestElement = document.getElementById("disable-speedtest");
-disableSpeedtestElement.addEventListener("change",
-    (event) => speedtestHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        speedtestHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
+
+browser.storage.local.get(
+    [
+        "disableSpeedtest",
+        "speedtestProtocol",
+    ],
+    r => {
+        disableSpeedtestElement.checked = !r.disableSpeedtest;
+
+        protocolElement.value = r.speedtestProtocol;
+        changeProtocolSettings(r.speedtestProtocol);
     }
-);
+)
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableSpeedtest: !disableSpeedtestElement.checked,
+        speedtestProtocol: protocolElement.value,
+    })
+    changeProtocolSettings(protocolElement.value);
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,38 +38,8 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-speedtestHelper.init().then(() => {
-    disableSpeedtestElement.checked = !speedtestHelper.getDisable();
-
-    let protocol = speedtestHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    browser.storage.local.get("librespeedLatency").then(r => {
-    commonHelper.processDefaultCustomInstances(
-        'librespeed',
-        'normal',
-        speedtestHelper,
-        document,
-        speedtestHelper.getLibrespeedNormalRedirectsChecks,
-        speedtestHelper.setLibrespeedNormalRedirectsChecks,
-        speedtestHelper.getLibrespeedNormalCustomRedirects,
-        speedtestHelper.setLibrespeedNormalCustomRedirects,
-        r.librespeedLatency,
-    );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'librespeed',
-        'tor',
-        speedtestHelper,
-        document,
-        speedtestHelper.getLibrespeedTorRedirectsChecks,
-        speedtestHelper.setLibrespeedTorRedirectsChecks,
-        speedtestHelper.getLibrespeedTorCustomRedirects,
-        speedtestHelper.setLibrespeedTorCustomRedirects
-    )
-})
+commonHelper.processDefaultCustomInstances('librespeed', 'normal', speedtestHelper, document);
+commonHelper.processDefaultCustomInstances('librespeed', 'tor', speedtestHelper, document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -74,17 +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,
-                speedtestHelper.getLibrespeedNormalRedirectsChecks,
-                speedtestHelper.setLibrespeedNormalRedirectsChecks,
-                speedtestHelper.getLibrespeedNormalCustomRedirects,
-                speedtestHelper.setLibrespeedNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('librespeed', 'normal', speedtestHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/spotify/spotify.html b/src/pages/options/spotify/spotify.html
index 0496875a..03a1ca9e 100644
--- a/src/pages/options/spotify/spotify.html
+++ b/src/pages/options/spotify/spotify.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a class="selected" href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
@@ -62,13 +61,6 @@
       <h4 data-localise="__MSG_enable__">Enable</h4>
       <input id="disable-spotify" type="checkbox">
     </div>
-    <div class="some-block option-block">
-      <h4 data-localise="__MSG_protocol__">Protocol</h4>
-      <select id="protocol">
-        <option value="normal" data-localise="__MSG_normal__">Normal</option>
-        <option value="tor" data-localise="__MSG_tor__">Tor</option>
-      </select>
-    </div>
     <div id="soju">
       <hr>
       <div class="normal">
@@ -99,27 +91,6 @@
                 </label>
                 <input class="button button-inline" id="latency" style="display:none;">
       </div>
-      <div class="tor">
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
-                </div>
-                <div class="checklist"></div>
-                <hr>
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
-                </div>
-                <form class="custom-instance-form">
-                  <div class="some-block option-block">
-                    <input class="custom-instance" placeholder="https://soju.onion" type="url">
-                    <button class="add add-instance" type="submit">
-                      <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
-                        <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
-                      </svg>
-                    </button>
-                  </div>
-                </form>
-                <div class="checklist custom-checklist"></div>
-      </div>
       <script type="module" src="../init.js"></script>
       <script type="module" src="./spotify.js"></script>
     </div>
diff --git a/src/pages/options/spotify/spotify.js b/src/pages/options/spotify/spotify.js
index d158412d..33cc9e91 100644
--- a/src/pages/options/spotify/spotify.js
+++ b/src/pages/options/spotify/spotify.js
@@ -2,64 +2,17 @@ import spotifyHelper from "../../../assets/javascripts/helpers/spotify.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableSpotifyElement = document.getElementById("disable-spotify");
-disableSpotifyElement.addEventListener("change",
-    (event) => spotifyHelper.setDisable(!event.target.checked)
-);
 
-let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        spotifyHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
+browser.storage.local.get(
+    [
+        "disableSpotifyTargets",
+    ],
+    r => {
+        disableSpotifyElement.checked = !r.disableSpotifyTargets;
     }
-);
+)
 
-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';
-    }
-}
-
-spotifyHelper.init().then(() => {
-    disableSpotifyElement.checked = !spotifyHelper.getDisable();
-
-    let protocol = spotifyHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    browser.storage.local.get("sojuLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'soju',
-            'normal',
-            spotifyHelper,
-            document,
-            spotifyHelper.getSojuNormalRedirectsChecks,
-            spotifyHelper.setSojuNormalRedirectsChecks,
-            spotifyHelper.getSojuNormalCustomRedirects,
-            spotifyHelper.setSojuNormalCustomRedirects,
-            r.sojuLatency,
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'soju',
-        'tor',
-        spotifyHelper,
-        document,
-        spotifyHelper.getSojuTorRedirectsChecks,
-        spotifyHelper.setSojuTorRedirectsChecks,
-        spotifyHelper.getSojuTorCustomRedirects,
-        spotifyHelper.setSojuTorCustomRedirects
-    )
-})
+commonHelper.processDefaultCustomInstances('soju', 'normal', spotifyHelper, document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -74,17 +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,
-                spotifyHelper.getSojuNormalRedirectsChecks,
-                spotifyHelper.setSojuNormalRedirectsChecks,
-                spotifyHelper.getSojuNormalCustomRedirects,
-                spotifyHelper.setSojuNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('soju', 'normal', spotifyHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/tiktok/tiktok.html b/src/pages/options/tiktok/tiktok.html
index 9aff1e47..e422eef7 100644
--- a/src/pages/options/tiktok/tiktok.html
+++ b/src/pages/options/tiktok/tiktok.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a class="selected" href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/tiktok/tiktok.js b/src/pages/options/tiktok/tiktok.js
index 299664db..61841145 100644
--- a/src/pages/options/tiktok/tiktok.js
+++ b/src/pages/options/tiktok/tiktok.js
@@ -26,68 +26,44 @@ document.addEventListener("change", async () => {
 
 window.onblur = tiktokHelper.initProxiTokCookies;
 
-function init() {
-    tiktokHelper.init().then(() => {
-        browser.storage.local.get(
-            [
-                "disableTiktok",
-                "tiktokProtocol",
-
-                "enableTiktokCustomSettings",
-
-                "proxiTokTheme",
-                "proxiTokApiLegacy",
-            ],
-            r => {
-                disable.checked = !r.disableTiktok;
-                protocol.value = r.tiktokProtocol;
-                let normalDiv = document.getElementsByClassName("normal")[0];
-                let torDiv = document.getElementsByClassName("tor")[0];
-                if (r.tiktokProtocol == 'normal') {
-                    normalDiv.style.display = 'block';
-                    torDiv.style.display = 'none';
-                }
-                else if (r.tiktokProtocol == 'tor') {
-                    normalDiv.style.display = 'none';
-                    torDiv.style.display = 'block';
-                }
-
-                enableCustomSettings.checked = r.enableTiktokCustomSettings;
-                if (r.enableTiktokCustomSettings)
-                    customSettingsDiv.style.display = 'block';
-                else
-                    customSettingsDiv.style.display = 'none';
-
-                theme.value = r.proxiTokTheme;
-                api_legacy.value = r.proxiTokApiLegacy
-            }
-        )
-        browser.storage.local.get("proxiTokLatency").then(r => {
-            commonHelper.processDefaultCustomInstances(
-                'proxiTok',
-                'normal',
-                tiktokHelper,
-                document,
-                tiktokHelper.getProxiTokNormalRedirectsChecks,
-                tiktokHelper.setProxiTokNormalRedirectsChecks,
-                tiktokHelper.getProxiTokNormalCustomRedirects,
-                tiktokHelper.setProxiTokNormalCustomRedirects,
-                r.proxiTokLatency,
-            );
-        })
-        commonHelper.processDefaultCustomInstances(
-            'proxiTok',
-            'tor',
-            tiktokHelper,
-            document,
-            tiktokHelper.getProxiTokTorRedirectsChecks,
-            tiktokHelper.setProxiTokTorRedirectsChecks,
-            tiktokHelper.getProxiTokTorCustomRedirects,
-            tiktokHelper.setProxiTokTorCustomRedirects
-        )
-    })
-}
-init();
+browser.storage.local.get(
+    [
+        "disableTiktok",
+        "tiktokProtocol",
+
+        "enableTiktokCustomSettings",
+
+        "proxiTokTheme",
+        "proxiTokApiLegacy",
+    ],
+    r => {
+        disable.checked = !r.disableTiktok;
+        protocol.value = r.tiktokProtocol;
+        let normalDiv = document.getElementsByClassName("normal")[0];
+        let torDiv = document.getElementsByClassName("tor")[0];
+        if (r.tiktokProtocol == 'normal') {
+            normalDiv.style.display = 'block';
+            torDiv.style.display = 'none';
+        }
+        else if (r.tiktokProtocol == 'tor') {
+            normalDiv.style.display = 'none';
+            torDiv.style.display = 'block';
+        }
+
+        enableCustomSettings.checked = r.enableTiktokCustomSettings;
+        if (r.enableTiktokCustomSettings)
+            customSettingsDiv.style.display = 'block';
+        else
+            customSettingsDiv.style.display = 'none';
+
+        theme.value = r.proxiTokTheme;
+        api_legacy.value = r.proxiTokApiLegacy
+    }
+)
+
+commonHelper.processDefaultCustomInstances('proxiTok', 'normal', tiktokHelper, document);
+commonHelper.processDefaultCustomInstances('proxiTok', 'tor', tiktokHelper, document)
+
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -102,17 +78,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,
-                tiktokHelper.getProxiTokNormalRedirectsChecks,
-                tiktokHelper.setProxiTokNormalRedirectsChecks,
-                tiktokHelper.getProxiTokNormalCustomRedirects,
-                tiktokHelper.setProxiTokNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('proxiTok', 'normal', tiktokHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/translate/translate.html b/src/pages/options/translate/translate.html
index 8f63ace9..f80854f1 100644
--- a/src/pages/options/translate/translate.html
+++ b/src/pages/options/translate/translate.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/twitter/twitter.html b/src/pages/options/twitter/twitter.html
index d7b14abf..d553d72c 100644
--- a/src/pages/options/twitter/twitter.html
+++ b/src/pages/options/twitter/twitter.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/twitter/twitter.js b/src/pages/options/twitter/twitter.js
index bd611497..b77f5ecc 100644
--- a/src/pages/options/twitter/twitter.js
+++ b/src/pages/options/twitter/twitter.js
@@ -21,8 +21,56 @@ let hlsPlayback = document.getElementById('nitter').getElementsByClassName('hlsP
 let proxyVideos = document.getElementById('nitter').getElementsByClassName('proxyVideos')[0];
 let muteVideos = document.getElementById('nitter').getElementsByClassName('muteVideos')[0];
 let autoplayGifs = document.getElementById('nitter').getElementsByClassName('autoplayGifs')[0];
-
 let nitterElement = document.getElementById("nitter");
+
+browser.storage.local.get(
+    [
+        "disableTwitter",
+        "twitterProtocol",
+        "enableTwitterCustomSettings",
+        "bypassWatchOnTwitter",
+        "nitterTheme",
+        "nitterInfiniteScroll",
+        "nitterStickyProfile",
+        "nitterBidiSupport",
+        "nitterHideTweetStats",
+        "nitterHideBanner",
+        "nitterHidePins",
+        "nitterHideReplies",
+        "nitterSquareAvatars",
+        "nitterMp4Playback",
+        "nitterHlsPlayback",
+        "nitterProxyVideos",
+        "nitterMuteVideos",
+        "nitterAutoplayGifs",
+    ],
+    r => {
+        disableTwitterElement.checked = !r.disableTwitter;
+        enableYoutubeCustomSettingsElement.checked = r.enableTwitterCustomSettings;
+        bypassWatchOnTwitterElement.checked = r.bypassWatchOnTwitter;
+        protocolElement.value = r.twitterProtocol;
+        changeProtocolSettings(r.twitterProtocol);
+        
+        // Display
+        theme.value = r.nitterTheme;
+        infiniteScroll.checked = r.nitterInfiniteScroll;
+        stickyProfile.checked = r.nitterStickyProfile;
+        bidiSupport.checked = r.nitterBidiSupport;
+        hideTweetStats.checked = r.nitterHideTweetStats;
+        hideBanner.checked = r.nitterHideBanner;
+        hidePins.checked = r.nitterHidePins;
+        hideReplies.checked = r.nitterHideReplies;
+        squareAvatars.checked = r.nitterSquareAvatars;
+        
+        // Media
+        mp4Playback.checked = r.nitterMp4Playback;
+        hlsPlayback.checked = r.nitterHlsPlayback;
+        proxyVideos.checked = r.nitterProxyVideos;
+        muteVideos.checked = r.nitterMuteVideos;
+        autoplayGifs.checked = r.nitterAutoplayGifs;
+    }
+)
+
 document.addEventListener("change", async () => {
     await browser.storage.local.set({
         disableTwitter: !disableTwitterElement.checked,
@@ -68,58 +116,8 @@ function changeProtocolSettings(protocol) {
         for (const item of customSettingsDivElement) item.style.display = 'none';
 }
 
-function init() {
-    twitterHelper.init().then(() => {
-        disableTwitterElement.checked = !twitterHelper.getDisable();
-        enableYoutubeCustomSettingsElement.checked = twitterHelper.getEnableCustomSettings();
-        bypassWatchOnTwitterElement.checked = twitterHelper.getBypassWatchOnTwitter();
-
-        let protocol = twitterHelper.getProtocol();
-        protocolElement.value = protocol;
-        changeProtocolSettings(protocol);
-        theme.value = twitterHelper.getTheme();
-        infiniteScroll.checked = twitterHelper.getInfiniteScroll();
-        stickyProfile.checked = twitterHelper.getStickyProfile();
-        bidiSupport.checked = twitterHelper.getBidiSupport();
-        hideTweetStats.checked = twitterHelper.getHideTweetStats();
-        hideBanner.checked = twitterHelper.getHideBanner();
-        hidePins.checked = twitterHelper.getHidePins();
-        hideReplies.checked = twitterHelper.getHideReplies();
-        squareAvatars.checked = twitterHelper.getSquareAvatars();
-        mp4Playback.checked = twitterHelper.getMp4Playback();
-        hlsPlayback.checked = twitterHelper.getHlsPlayback();
-        proxyVideos.checked = twitterHelper.getProxyVideos();
-        muteVideos.checked = twitterHelper.getMuteVideos();
-        autoplayGifs.checked = twitterHelper.getAutoplayGifs();
-
-        browser.storage.local.get("nitterLatency").then(r => {
-            commonHelper.processDefaultCustomInstances(
-                'nitter',
-                'normal',
-                twitterHelper,
-                document,
-                twitterHelper.getNitterNormalRedirectsChecks,
-                twitterHelper.setNitterNormalRedirectsChecks,
-                twitterHelper.getNitterNormalCustomRedirects,
-                twitterHelper.setNitterNormalCustomRedirects,
-                r.nitterLatency,
-            );
-        });
-
-        commonHelper.processDefaultCustomInstances(
-            'nitter',
-            'tor',
-            twitterHelper,
-            document,
-            twitterHelper.getNitterTorRedirectsChecks,
-            twitterHelper.setNitterTorRedirectsChecks,
-            twitterHelper.getNitterTorCustomRedirects,
-            twitterHelper.setNitterTorCustomRedirects
-        )
-    });
-}
-init();
-
+// commonHelper.processDefaultCustomInstances('nitter', 'normal', twitterHelper, document);
+// commonHelper.processDefaultCustomInstances('nitter', 'tor', twitterHelper, document)
 window.onblur = twitterHelper.initNitterCookies;
 
 let latencyElement = document.getElementById("latency");
@@ -135,17 +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,
-                twitterHelper.getNitterNormalRedirectsChecks,
-                twitterHelper.setNitterNormalRedirectsChecks,
-                twitterHelper.getNitterNormalCustomRedirects,
-                twitterHelper.setNitterNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('nitter', 'normal', twitterHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/wikipedia/wikipedia.html b/src/pages/options/wikipedia/wikipedia.html
index 246c269b..4d0f08cb 100644
--- a/src/pages/options/wikipedia/wikipedia.html
+++ b/src/pages/options/wikipedia/wikipedia.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a class="selected" href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/wikipedia/wikipedia.js b/src/pages/options/wikipedia/wikipedia.js
index 526068b4..0d9a1a6c 100644
--- a/src/pages/options/wikipedia/wikipedia.js
+++ b/src/pages/options/wikipedia/wikipedia.js
@@ -2,18 +2,27 @@ import wikipediaHelper from "../../../assets/javascripts/helpers/wikipedia.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableWikipediaElement = document.getElementById("disable-wikipedia");
-disableWikipediaElement.addEventListener("change",
-    event => wikipediaHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol");
-protocolElement.addEventListener("change",
-    event => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        wikipediaHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
+
+browser.storage.local.get(
+    [
+        "disableWikipedia",
+        "wikipediaProtocol",
+    ],
+    r => {
+        disableWikipediaElement.checked = !r.disableWikipedia;
+        protocolElement.value = r.wikipediaProtocol;
+        changeProtocolSettings(r.wikipediaProtocol);
     }
-);
+)
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableWikipedia: !disableWikipediaElement.checked,
+        wikipediaProtocol: protocolElement.value,
+    })
+    changeProtocolSettings(protocolElement.value)
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -35,51 +44,11 @@ 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)
 
-wikipediaHelper.init().then(() => {
-    disableWikipediaElement.checked = !wikipediaHelper.getDisable();
-
-    let protocol = wikipediaHelper.getProtocol();
-    console.log('protocol', protocol);
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    browser.storage.local.get("wikilessLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'wikiless',
-            'normal',
-            wikipediaHelper,
-            document,
-            wikipediaHelper.getWikilessNormalRedirectsChecks,
-            wikipediaHelper.setWikilessNormalRedirectsChecks,
-            wikipediaHelper.getWikilessNormalCustomRedirects,
-            wikipediaHelper.setWikilessNormalCustomRedirects,
-            r.wikilessLatency,
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'wikiless',
-        'tor',
-        wikipediaHelper,
-        document,
-        wikipediaHelper.getWikilessTorRedirectsChecks,
-        wikipediaHelper.setWikilessTorRedirectsChecks,
-        wikipediaHelper.getWikilessTorCustomRedirects,
-        wikipediaHelper.setWikilessTorCustomRedirects
-    )
-
-    commonHelper.processDefaultCustomInstances(
-        'wikiless',
-        'i2p',
-        wikipediaHelper,
-        document,
-        wikipediaHelper.getWikilessI2pRedirectsChecks,
-        wikipediaHelper.setWikilessI2pRedirectsChecks,
-        wikipediaHelper.getWikilessI2pCustomRedirects,
-        wikipediaHelper.setWikilessI2pCustomRedirects
-    )
-})
+window.onblur = wikipediaHelper.initWikilessCookies;
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -94,17 +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,
-                wikipediaHelper.getWikilessNormalRedirectsChecks,
-                wikipediaHelper.setWikilessNormalRedirectsChecks,
-                wikipediaHelper.getWikilessNormalCustomRedirects,
-                wikipediaHelper.setWikilessNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('wikiless', 'normal', wikipediaHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html
index 569e7f12..aa257726 100644
--- a/src/pages/options/youtube/youtube.html
+++ b/src/pages/options/youtube/youtube.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
@@ -182,7 +181,7 @@
           <input class="volume" type="range" min="0" max="100" step="1">
         </div>
         <div class="some-block option-block">
-          <h4 data-localise="__MSG_prefDashQuality__">Default comments</h4>
+          <h4 data-localise="__MSG_defaultComments__">Default comments</h4>
           <select class="comments[0]">
             <option value="" data-localise="__MSG_none__">none</option>
             <option value="youtube">YouTube</option>
diff --git a/src/pages/options/youtubeMusic/youtubeMusic.html b/src/pages/options/youtubeMusic/youtubeMusic.html
index 9286ed64..5a93bffc 100644
--- a/src/pages/options/youtubeMusic/youtubeMusic.html
+++ b/src/pages/options/youtubeMusic/youtubeMusic.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/youtubeMusic/youtubeMusic.js b/src/pages/options/youtubeMusic/youtubeMusic.js
index 98d8b9a0..54a6f8d6 100644
--- a/src/pages/options/youtubeMusic/youtubeMusic.js
+++ b/src/pages/options/youtubeMusic/youtubeMusic.js
@@ -2,27 +2,23 @@ import youtubeMusicHelper from "../../../assets/javascripts/helpers/youtubeMusic
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableYoutubeMusicElement = document.getElementById("disable-beatbump");
-disableYoutubeMusicElement.addEventListener("change",
-    (event) => youtubeMusicHelper.setDisable(!event.target.checked)
-);
 
-youtubeMusicHelper.init().then(() => {
-    disableYoutubeMusicElement.checked = !youtubeMusicHelper.getDisable();
+browser.storage.local.get(
+    [
+        "disableYoutubeMusic",
+    ],
+    r => {
+        disableYoutubeMusicElement.checked = !r.disableYoutubeMusic;
+    }
+);
 
-    browser.storage.local.get("beatbumpLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'beatbump',
-            'normal',
-            youtubeMusicHelper,
-            document,
-            youtubeMusicHelper.getBeatbumpNormalRedirectsChecks,
-            youtubeMusicHelper.setBeatbumpNormalRedirectsChecks,
-            youtubeMusicHelper.getBeatbumpNormalCustomRedirects,
-            youtubeMusicHelper.setBeatbumpNormalCustomRedirects,
-            r.beatbumpLatency,
-        );
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableYoutubeMusic: !disableYoutubeMusicElement.checked,
     })
-});
+})
+
+commonHelper.processDefaultCustomInstances('beatbump', 'normal', youtubeMusicHelper, document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -37,17 +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,
-                youtubeMusicHelper.getBeatbumpNormalRedirectsChecks,
-                youtubeMusicHelper.setBeatbumpNormalRedirectsChecks,
-                youtubeMusicHelper.getBeatbumpNormalCustomRedirects,
-                youtubeMusicHelper.setBeatbumpNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('beatbump', 'normal', youtubeMusicHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }