about summary refs log tree commit diff stats
path: root/src/pages
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/background/background.js127
-rw-r--r--src/pages/background/incognito.js3
-rw-r--r--src/pages/popup/popup.js14
3 files changed, 71 insertions, 73 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 211ecf98..aef21cd3 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -19,19 +19,8 @@ import sendTargetsHelper from "../../assets/javascripts/helpers/sendTargets.js";
 import peertubeHelper from "../../assets/javascripts/helpers/peertube.js";
 import lbryHelper from "../../assets/javascripts/helpers/lbry.js";
 
-
 window.browser = window.browser || window.chrome;
 
-youtubeHelper.setInvidiousCookies();
-translateHelper.setSimplyTranslateCookies();
-twitterHelper.setNitterCookies();
-wikipediaHelper.setWikilessCookies();
-searchHelper.setSearxCookies();
-searchHelper.setSearxngCookies();
-redditHelper.setLibredditCookies();
-redditHelper.setTedditCookies();
-tiktokHelper.setProxiTokCookies();
-
 browser.runtime.onInstalled.addListener(
   async details => {
     if (details.reason == 'install') {
@@ -58,8 +47,15 @@ browser.runtime.onInstalled.addListener(
   }
 )
 
-async function wholeInit() {
-}
+youtubeHelper.setInvidiousCookies();
+translateHelper.setSimplyTranslateCookies();
+twitterHelper.setNitterCookies();
+wikipediaHelper.setWikilessCookies();
+searchHelper.setSearxCookies();
+searchHelper.setSearxngCookies();
+redditHelper.setLibredditCookies();
+redditHelper.setTedditCookies();
+tiktokHelper.setProxiTokCookies();
 
 let incognitoInit = false;
 browser.tabs.onCreated.addListener(
@@ -75,39 +71,39 @@ browser.tabs.onCreated.addListener(
 
 let BYPASSTABs = [];
 browser.webRequest.onBeforeRequest.addListener(
-  async details => {
+  details => {
     const url = new URL(details.url);
     if (new RegExp(/^chrome-extension:\/{2}.*\/instances\/(blocklist|data).json$/).test(url.href) && details.type == 'xmlhttprequest') return;
-    await wholeInit();
     let initiator;
-    if (details.originUrl)
-      initiator = new URL(details.originUrl);
-    else if (details.initiator)
-      initiator = new URL(details.initiator);
-
-    let newUrl = await youtubeMusicHelper.redirect(url, details.type)
-    if (!newUrl) newUrl = await youtubeHelper.redirect(url, details, initiator)
-    if (!newUrl) newUrl = await twitterHelper.redirect(url, initiator);
-    if (!newUrl) newUrl = await instagramHelper.redirect(url, details.type, initiator);
-    if (!newUrl) newUrl = await mapsHelper.redirect(url, initiator);
-    if (!newUrl) newUrl = await redditHelper.redirect(url, details.type, initiator);
-    if (!newUrl) newUrl = await mediumHelper.redirect(url, details.type, initiator);
-    if (!newUrl) newUrl = await imgurHelper.redirect(url, details.type, initiator);
-    if (!newUrl) newUrl = await tiktokHelper.redirect(url, details.type, initiator);
-    if (!newUrl) newUrl = await sendTargetsHelper.redirect(url, details.type, initiator);
-    if (!newUrl) newUrl = await peertubeHelper.redirect(url, details.type, initiator);
-    if (!newUrl) newUrl = await lbryHelper.redirect(url, details.type, initiator);
-    if (!newUrl) newUrl = await translateHelper.redirect(url);
-    if (!newUrl) newUrl = await searchHelper.redirect(url)
-    if (!newUrl) newUrl = await wikipediaHelper.redirect(url);
+    try {
+      if (details.originUrl) initiator = new URL(details.originUrl);
+      else if (details.initiator) initiator = new URL(details.initiator);
+    }
+    catch { return null; }
+
+
+    let newUrl = youtubeMusicHelper.redirect(url, details.type)
+    if (!newUrl) newUrl = youtubeHelper.redirect(url, details, initiator)
+    if (!newUrl) newUrl = twitterHelper.redirect(url, initiator);
+    if (!newUrl) newUrl = instagramHelper.redirect(url, details.type, initiator);
+    if (!newUrl) newUrl = mapsHelper.redirect(url, initiator);
+    if (!newUrl) newUrl = redditHelper.redirect(url, details.type, initiator);
+    if (!newUrl) newUrl = mediumHelper.redirect(url, details.type, initiator);
+    if (!newUrl) newUrl = imgurHelper.redirect(url, details.type, initiator);
+    if (!newUrl) newUrl = tiktokHelper.redirect(url, details.type, initiator);
+    if (!newUrl) newUrl = sendTargetsHelper.redirect(url, details.type, initiator);
+    if (!newUrl) newUrl = peertubeHelper.redirect(url, details.type, initiator);
+    if (!newUrl) newUrl = lbryHelper.redirect(url, details.type, initiator);
+    if (!newUrl) newUrl = translateHelper.redirect(url);
+    if (!newUrl) newUrl = searchHelper.redirect(url)
+    if (!newUrl) newUrl = wikipediaHelper.redirect(url);
 
     if (
       details.frameAncestors && details.frameAncestors.length > 0 &&
-      await generalHelper.isException(new URL(details.frameAncestors[0].url))
+      generalHelper.isException(new URL(details.frameAncestors[0].url))
     ) newUrl = null;
 
-    if (await generalHelper.isException(url)) newUrl = 'BYPASSTAB';
-
+    if (generalHelper.isException(url)) newUrl = 'BYPASSTAB';
     if (BYPASSTABs.includes(details.tabId)) newUrl = null;
 
     if (newUrl) {
@@ -115,15 +111,13 @@ browser.webRequest.onBeforeRequest.addListener(
         console.log(`Canceled ${url}`);
         return { cancel: true };
       }
-      else if (newUrl === 'BYPASSTAB') {
+      if (newUrl === 'BYPASSTAB') {
         console.log(`Bypassed ${details.tabId} ${url}`);
         if (!BYPASSTABs.includes(details.tabId)) BYPASSTABs.push(details.tabId);
         return null;
       }
-      else {
-        console.info("Redirecting", url.href, "=>", newUrl);
-        return { redirectUrl: newUrl };
-      }
+      console.info("Redirecting", url.href, "=>", newUrl);
+      return { redirectUrl: newUrl };
     }
     return null;
   },
@@ -133,7 +127,7 @@ browser.webRequest.onBeforeRequest.addListener(
 
 browser.tabs.onRemoved.addListener(
   tabId => {
-    let i = BYPASSTABs.indexOf(tabId);
+    const i = BYPASSTABs.indexOf(tabId);
     if (i > -1) {
       BYPASSTABs.splice(i, 1);
       console.log("Removed BYPASSTABs", tabId);
@@ -143,7 +137,6 @@ browser.tabs.onRemoved.addListener(
 
 browser.webRequest.onHeadersReceived.addListener(
   async e => {
-    await wholeInit();
     let response = twitterHelper.removeXFrameOptions(e)
     if (!response) youtubeHelper.removeXFrameOptions(e)
     return response;
@@ -153,20 +146,17 @@ browser.webRequest.onHeadersReceived.addListener(
 );
 
 async function redirectOfflineInstance(url, tabId) {
-  await wholeInit();
-  let newUrl;
-
-  newUrl = youtubeHelper.switchInstance(url);
-  if (!newUrl) newUrl = twitterHelper.switchInstance(url);
-  if (!newUrl) newUrl = instagramHelper.switchInstance(url);
-  if (!newUrl) newUrl = redditHelper.switchInstance(url);
-  if (!newUrl) newUrl = searchHelper.switchInstance(url);
-  if (!newUrl) newUrl = translateHelper.switchInstance(url);
-  if (!newUrl) newUrl = mediumHelper.switchInstance(url);
-  if (!newUrl) newUrl = imgurHelper.switchInstance(url);
-  if (!newUrl) newUrl = wikipediaHelper.switchInstance(url);
-  if (!newUrl) newUrl = peertubeHelper.switchInstance(url);
-  if (!newUrl) newUrl = lbryHelper.switchInstance(url);
+  let newUrl = await youtubeHelper.switchInstance(url);
+  if (!newUrl) newUrl = await twitterHelper.switchInstance(url);
+  if (!newUrl) newUrl = await instagramHelper.switchInstance(url);
+  if (!newUrl) newUrl = await redditHelper.switchInstance(url);
+  if (!newUrl) newUrl = await searchHelper.switchInstance(url);
+  if (!newUrl) newUrl = await translateHelper.switchInstance(url);
+  if (!newUrl) newUrl = await mediumHelper.switchInstance(url);
+  if (!newUrl) newUrl = await imgurHelper.switchInstance(url);
+  if (!newUrl) newUrl = await wikipediaHelper.switchInstance(url);
+  if (!newUrl) newUrl = await peertubeHelper.switchInstance(url);
+  if (!newUrl) newUrl = await lbryHelper.switchInstance(url);
 
   if (newUrl) {
     if (counter >= 5) {
@@ -194,13 +184,7 @@ function isAutoRedirect() {
 browser.webRequest.onResponseStarted.addListener(
   async details => {
     if (!await isAutoRedirect()) return null;
-
-    if (details.type == 'main_frame' && (details.statusCode == 502 || details.statusCode == 503 || details.statusCode == 504)) {
-      // if (details.type == 'main_frame' && details.statusCode >= 200) {
-      // console.log("statusCode", details.statusCode);
-      const url = new URL(details.url);
-      redirectOfflineInstance(url, details.tabId);
-    }
+    if (details.type == 'main_frame' && details.statusCode >= 500) redirectOfflineInstance(new URL(details.url), details.tabId);
   },
   { urls: ["<all_urls>"], }
 )
@@ -208,10 +192,7 @@ browser.webRequest.onResponseStarted.addListener(
 browser.webRequest.onErrorOccurred.addListener(
   async details => {
     if (!await isAutoRedirect()) return;
-    if (details.type == 'main_frame') {
-      const url = new URL(details.url);
-      redirectOfflineInstance(url, details.tabId);
-    }
+    if (details.type == 'main_frame') redirectOfflineInstance(new URL(details.url), details.tabId);
   },
   { urls: ["<all_urls>"], }
 )
@@ -232,7 +213,7 @@ browser.contextMenus.create({
 
 browser.contextMenus.create({
   id: "switchInstance",
-  title: chrome.i18n.getMessage("switchInstance"),
+  title: browser.i18n.getMessage("switchInstance"),
   contexts: ["browser_action"]
 });
 
@@ -257,3 +238,7 @@ browser.contextMenus.onClicked.addListener(
     else if (info.menuItemId == 'unify') utils.unify();
   }
 );
+
+browser.runtime.onMessage.addListener(message => {
+  if (message.function === 'unify') utils.unify();
+});
diff --git a/src/pages/background/incognito.js b/src/pages/background/incognito.js
index 600591d3..2ebbe545 100644
--- a/src/pages/background/incognito.js
+++ b/src/pages/background/incognito.js
@@ -9,7 +9,10 @@ import tiktokHelper from "../../assets/javascripts/helpers/tiktok.js";
 window.browser = window.browser || window.chrome;
 
 await youtubeHelper.setInvidiousCookies();
+await youtubeHelper.initPipedLocalStorage();
+await youtubeHelper.initPipedMaterialLocalStorage();
 await translateHelper.setSimplyTranslateCookies();
+await translateHelper.initLingvaLocalStorage();
 await twitterHelper.setNitterCookies();
 await wikipediaHelper.setWikilessCookies();
 await searchHelper.setSearxCookies();
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index 824f178b..84dbab04 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -94,7 +94,7 @@ utils.unify(true).then(r => {
   if (!r) document.getElementById('unify_div').style.display = 'none';
   else {
     const unify = document.getElementById('unify');
-    unify.addEventListener("click", () => utils.unify(false, unify));
+    unify.addEventListener("click", () => browser.runtime.sendMessage({ function: 'unify' }));
   }
 })
 
@@ -108,4 +108,14 @@ browser.storage.local.get(
         document.getElementById(frontend).classList.add("hide")
       else
         document.getElementById(frontend).classList.remove("hide")
-  });
\ No newline at end of file
+  }
+);
+
+for (const a of document.getElementsByTagName('a')) {
+  a.addEventListener('click', e => {
+    if (!a.classList.includes('button')) {
+      browser.tabs.create({ url: a.getAttribute('href') });
+      e.preventDefault();
+    }
+  })
+}
\ No newline at end of file