aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-03-22 21:57:01 +0300
committerManeraKai <manerakai@protonmail.com>2022-03-22 21:57:01 +0300
commit1079e64f0d391bd4dbd63d6927c313199b81d141 (patch)
tree65d582ab0b026d42c0117104a59b0959ed10e6d2 /src/pages
parentBypassing pathname for Imgur #124 (diff)
downloadlibredirect-1079e64f0d391bd4dbd63d6927c313199b81d141.zip
Triggering AutoRedirect on Unknown Host and other Internet connectivity errors #127
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/background/background.js54
1 files changed, 33 insertions, 21 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index f8a7e54c..9b32bbdf 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -131,47 +131,59 @@ browser.tabs.onRemoved.addListener(
}
);
-browser.webRequest.onResponseStarted.addListener(
- details => {
- if (!generalHelper.getAutoRedirect()) return null;
+function redirectOfflineInstance(url, tabId) {
+ let newUrl;
- if (details.type == 'main_frame' && (details.statusCode == 503 || details.statusCode == 504)) {
- // if (details.type == 'main_frame' && details.statusCode >= 200) {
- console.log("statusCode", details.statusCode);
+ newUrl = youtubeHelper.switchInstance(url);
+ if (!newUrl) newUrl = twitterHelper.switchInstance(url);
- const url = new URL(details.url);
- let newUrl;
+ if (!newUrl) newUrl = instagramHelper.switchInstance(url);
- newUrl = youtubeHelper.switchInstance(url);
- if (!newUrl) newUrl = twitterHelper.switchInstance(url);
+ if (!newUrl) newUrl = redditHelper.switchInstance(url);
- if (!newUrl) newUrl = instagramHelper.switchInstance(url);
+ if (!newUrl) newUrl = searchHelper.switchInstance(url);
- if (!newUrl) newUrl = redditHelper.switchInstance(url);
+ if (!newUrl) newUrl = translateHelper.switchInstance(url);
- if (!newUrl) newUrl = searchHelper.switchInstance(url);
+ if (!newUrl) newUrl = mediumHelper.switchInstance(url);
- if (!newUrl) newUrl = translateHelper.switchInstance(url);
+ if (!newUrl) newUrl = imgurHelper.switchInstance(url);
- if (!newUrl) newUrl = mediumHelper.switchInstance(url);
+ if (!newUrl) newUrl = wikipediaHelper.switchInstance(url);
- if (!newUrl) newUrl = imgurHelper.switchInstance(url);
+ if (!newUrl) newUrl = peertubeHelper.switchInstance(url);
- if (!newUrl) newUrl = wikipediaHelper.switchInstance(url);
+ if (!newUrl) newUrl = lbryHelper.switchInstance(url);
- if (!newUrl) newUrl = peertubeHelper.switchInstance(url);
+ if (!newUrl) newUrl = spotifyHelper.switchInstance(url);
- if (!newUrl) newUrl = lbryHelper.switchInstance(url);
+ if (newUrl) browser.tabs.update(tabId, { url: `/pages/errors/instance_offline.html?url=${encodeURIComponent(newUrl)}` });
+}
- if (!newUrl) newUrl = spotifyHelper.switchInstance(url);
+browser.webRequest.onResponseStarted.addListener(
+ details => {
+ if (!generalHelper.getAutoRedirect()) return null;
- if (newUrl) browser.tabs.update(details.tabId, { url: `/pages/errors/instance_offline.html?url=${encodeURIComponent(newUrl)}` });
+ if (details.type == 'main_frame' && (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);
}
},
{ urls: ["<all_urls>"], }
)
+browser.webRequest.onErrorOccurred.addListener(
+ details => {
+ if (!generalHelper.getAutoRedirect()) return;
+ const url = new URL(details.url);
+ redirectOfflineInstance(url, details.tabId);
+ },
+ { urls: ["<all_urls>"], }
+)
+
browser.tabs.onUpdated.addListener(
(tabId, changeInfo, _) => {
let url;