From 9de383439e32e69da7233c652455ba496d2ffe43 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Sat, 19 Mar 2022 00:36:18 +0300 Subject: Restricted auto redirection to only 503, 504. Added a 'Cancel Redirection' btn --- src/pages/background/background.js | 11 +++++------ src/pages/errors/instance_offline.html | 16 ++++++++++++++-- src/pages/errors/instance_offline.js | 22 ++++++++++++++++++++-- 3 files changed, 39 insertions(+), 10 deletions(-) (limited to 'src/pages') diff --git a/src/pages/background/background.js b/src/pages/background/background.js index d1488870..4a48a15f 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -130,8 +130,9 @@ browser.webRequest.onResponseStarted.addListener( details => { if (!generalHelper.getAutoRedirect()) return null; - console.log("statusCode", details.statusCode); - if (details.type == 'main_frame' && details.statusCode >= 500) { + 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); let newUrl; @@ -159,10 +160,8 @@ browser.webRequest.onResponseStarted.addListener( // if (!newUrl) newUrl = spotifyHelper.changeInstance(url); - if (newUrl) { - browser.tabs.update({ url: '/pages/errors/instance_offline.html' }); - setTimeout(() => browser.tabs.update({ url: newUrl }), 2000); - } + if (newUrl) browser.tabs.update(details.tabId, { url: `/pages/errors/instance_offline.html?url=${encodeURIComponent(newUrl)}` }); + } }, { urls: [""], } diff --git a/src/pages/errors/instance_offline.html b/src/pages/errors/instance_offline.html index 7536b3c2..09ffb431 100644 --- a/src/pages/errors/instance_offline.html +++ b/src/pages/errors/instance_offline.html @@ -9,19 +9,31 @@ - This instance is offline, you'll be redirected after 2 seconds +
+

This instance is offline, you'll be redirected after 2 seconds +

+ +
diff --git a/src/pages/errors/instance_offline.js b/src/pages/errors/instance_offline.js index 586585d6..c3aee2c1 100644 --- a/src/pages/errors/instance_offline.js +++ b/src/pages/errors/instance_offline.js @@ -1,2 +1,20 @@ -setTimeout(() => document.getElementById("number").innerHTML = '1', 1000); -setTimeout(() => document.getElementById("number").innerHTML = '0', 2000); \ No newline at end of file +const params = new Proxy( + new URLSearchParams(window.location.search), + { get: (searchParams, prop) => searchParams.get(prop) } +); + +let number = document.getElementById("number"); +setTimeout(() => number.innerHTML = '1', 1000); +setTimeout( + () => { + number.innerHTML = '0' + if (!isCanceled) window.location = params.url; + }, + 2000 +); + +let isCanceled = false; +document.getElementById("cancel").addEventListener("click", () => { + isCanceled = true; + document.getElementById("message").innerHTML = "Redirection Canceled"; +}) \ No newline at end of file -- cgit 1.4.1