diff options
Diffstat (limited to 'src/pages/background/background.js')
-rw-r--r-- | src/pages/background/background.js | 54 |
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; |