From 46c1808ee95a9b3add561bfa0de9b4cd611d6db2 Mon Sep 17 00:00:00 2001 From: johnysigma Date: Mon, 30 Mar 2026 15:53:43 +0300 Subject: [PATCH] fix: improve proxy fallback and kill switch logic --- js/background.js | 2 ++ js/proxy-manager.js | 8 +++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/js/background.js b/js/background.js index adb68dc..8c80369 100644 --- a/js/background.js +++ b/js/background.js @@ -594,6 +594,8 @@ chrome.proxy.onProxyError.addListener(async (details) => { await applyKillSwitch(false); Utils.log('info', 'Kill switch deactivated after successful fallback'); } + // Reset debounce so next error on new proxy triggers immediate fallback + lastProxyErrorTime = 0; broadcastMessage({ action: 'statusUpdate', status: 'connected', diff --git a/js/proxy-manager.js b/js/proxy-manager.js index 9eecfdd..f1a8434 100644 --- a/js/proxy-manager.js +++ b/js/proxy-manager.js @@ -178,14 +178,10 @@ const ProxyManager = { resolve({ working: true, latency }); } else { Utils.log('debug', `Proxy ${proxy.host}:${proxy.port} returned ${response.status}`); - // Clear proxy settings on failure - chrome.proxy.settings.clear({}); resolve({ working: false, latency: null }); } } catch (error) { Utils.log('debug', `Proxy ${proxy.host}:${proxy.port} failed: ${error.name} - ${error.message}`); - // Clear proxy settings on failure - chrome.proxy.settings.clear({}); resolve({ working: false, latency: null }); } }); @@ -419,7 +415,9 @@ const ProxyManager = { return { success: true, proxy: proxyWithLatency, error: null }; } - return { success: false, proxy: null, error: 'Failed to apply proxy settings' }; + // applyProxy failed - try next proxy instead of giving up + Utils.log('warn', `Failed to apply proxy ${proxy.host}:${proxy.port} with full config, trying next...`); + return this.fallbackToNext(attemptCount + 1); }, /**