aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages
diff options
context:
space:
mode:
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;