aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages/background
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/background')
-rw-r--r--src/pages/background/background.js75
1 files changed, 44 insertions, 31 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 140f1719..aa97e2f6 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -81,6 +81,22 @@ browser.webRequest.onBeforeRequest.addListener(
["blocking"]
);
+browser.webRequest.onResponseStarted.addListener(
+ (responseDetails) => {
+ let url = new URL(responseDetails.url);
+ let protocolHost = `${url.protocol}//${url.host}`;
+ var mightyList = getMightyList();
+
+ if (mightyList.includes(protocolHost)); {
+ if (responseDetails.statusCode < 200 || responseDetails.statusCode >= 300) {
+ console.log("Instance is corrupted, redirecting", responseDetails.url);
+ changeInstance(responseDetails.url);
+ }
+ }
+ },
+ { urls: ["<all_urls>"] }
+);
+
browser.tabs.onUpdated.addListener((tabId, changeInfo, _) => {
let url;
try {
@@ -90,50 +106,25 @@ browser.tabs.onUpdated.addListener((tabId, changeInfo, _) => {
}
var protocolHost = `${url.protocol}//${url.host}`;
-
if (youtubeHelper.getRedirects().invidious.normal.includes(protocolHost)) {
if (youtubeHelper.getPersistInvidiousPrefs())
youtubeHelper.invidiousInitCookies(tabId);
}
- var mightyList = [];
- mightyList.push(
- ...youtubeHelper.getRedirects().invidious.normal,
- ...youtubeHelper.getRedirects().piped.normal,
-
- ...twitterHelper.getRedirects().nitter.normal,
-
- ...instagramHelper.getRedirects().bibliogram.normal,
-
- ...redditHelper.getRedirects().libreddit.normal,
- ...redditHelper.getRedirects().teddit.normal,
- redditHelper.getRedirects().desktop,
- redditHelper.getRedirects().mobile,
-
- ...searchHelper.getRedirects().searx.normal,
- ...searchHelper.getRedirects().whoogle.normal,
-
- ...translateHelper.getRedirects().simplyTranslate.normal,
- ...translateHelper.getRedirects().lingva.normal,
-
- ...mediumHelper.getRedirects().scribe.normal,
- ...imgurHelper.getRedirects().rimgo.normal,
-
- ...wikipediaHelper.getRedirects().wikiless.normal
- );
+ var mightyList = getMightyList();
if (mightyList.includes(protocolHost)) browser.pageAction.show(tabId);
});
-browser.pageAction.onClicked.addListener((tab) => {
- var tabUrl = new URL(tab.url);
+function changeInstance(url) {
+ var tabUrl = new URL(url);
var protocolHost = `${tabUrl.protocol}//${tabUrl.host}`;
var newUrl;
if (
- youtubeHelper.getRedirects().invidious.normal.includes(protocolHost) ||
- youtubeHelper.getRedirects().piped.normal.includes(protocolHost)
+ youtubeHelper.getCustomRedirects().invidious.normal.includes(protocolHost) ||
+ youtubeHelper.getCustomRedirects().piped.normal.includes(protocolHost)
)
newUrl = 'https://youtube.com';
@@ -167,5 +158,27 @@ browser.pageAction.onClicked.addListener((tab) => {
if (wikipediaHelper.getRedirects().wikiless.normal.includes(protocolHost)) newUrl = 'https://wikipedia.com';
if (newUrl) browser.tabs.update({ url: tabUrl.href.replace(protocolHost, newUrl) });
-});
+}
+
+browser.pageAction.onClicked.addListener((tab) => changeInstance(tab.url));
+
+function getMightyList() {
+ return [
+ ...youtubeHelper.getCustomRedirects().invidious.normal,
+ ...youtubeHelper.getCustomRedirects().piped.normal,
+ ...twitterHelper.getCustomRedirects().nitter.normal,
+ ...instagramHelper.getCustomRedirects().bibliogram.normal,
+ ...redditHelper.getCustomRedirects().libreddit.normal,
+ ...redditHelper.getCustomRedirects().teddit.normal,
+ redditHelper.getCustomRedirects().desktop,
+ redditHelper.getCustomRedirects().mobile,
+ ...searchHelper.getCustomRedirects().searx.normal,
+ ...searchHelper.getCustomRedirects().whoogle.normal,
+ ...translateHelper.getCustomRedirects().simplyTranslate.normal,
+ ...translateHelper.getCustomRedirects().lingva.normal,
+ ...mediumHelper.getCustomRedirects().scribe.normal,
+ ...imgurHelper.getCustomRedirects().rimgo.normal,
+ ...wikipediaHelper.getCustomRedirects().wikiless.normal
+ ];
+}