From 5b3e6f1f51e42eb912efe490624f3894876a6803 Mon Sep 17 00:00:00 2001 From: ilyaigpetrov Date: Fri, 27 Aug 2021 15:25:02 +0000 Subject: [PATCH 1/5] Break dns url for testing, don't fail on dns failure In this commit all dns errors a swallowed during install --- .../src/extension-full/20-ip-to-host-api.js | 25 ++++++------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js b/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js index 1b34a9f..3e6c8f6 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js @@ -115,7 +115,7 @@ const promises = types.map( (type) => new Promise((resolve) => httpLib.get( - `https://dns.google.com/resolve?type=${type}&name=${host}&random_padding=${generateRandomHexString(30,500)}`, + `https://dnsssssss.google.com/resolve?type=${type}&name=${host}&random_padding=${generateRandomHexString(30,500)}`, (err, res) => { if (res) { @@ -273,29 +273,18 @@ ); Promise.all( promises ).then( (cbsRes) => { - const errors = cbsRes.map( ([err]) => err ).filter( (err) => err ); - let newError; - const ifAllErrors = cbsRes.length === errors.length; - if (errors.length) { - if (ifAllErrors) { - newError = errors.shift(); - } else { - newError = errors; - } - newError = clarify( - newError, + let ipErrors = cbsRes.map( ([err]) => err ).filter( (err) => err ); + if (ipErrors.length) { + ipErrors = clarify( + ipErrors, 'Не удалось получить один или несколько IP адресов для' + ' прокси-серверов. Иконка для уведомления об обходе' + ' блокировок может не отображаться.' ); - if (ifAllErrors) { - return cb(newError); - } } - cb(null, null, newError); - + console.log('IP ERRORS:', ipErrors); // TODO: + cb(null, null, ipErrors); }); - }, _replaceAllAsync(hostArr = mandatory(), cb) { From 86d07b79c3bdabeaede699d69ad27c6a51ddfbe6 Mon Sep 17 00:00:00 2001 From: ilyaigpetrov Date: Fri, 27 Aug 2021 16:19:50 +0000 Subject: [PATCH 2/5] make extension robust to dns failures (test0) --- ...7-sync-pac-script-with-pac-provider-api.tmpl.js | 14 +++++++------- .../src/extension-full/20-ip-to-host-api.js | 3 +-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js index 513abb4..032c03d 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js @@ -469,24 +469,24 @@ reject([err, ...warns]); return; } - resolve(err, res, ...warns); + resolve([err, res, ...warns]); }, ), ); - const ipsErrorPromise = !ifUnattended + const ipsPromise = !ifUnattended ? updateIpsAsync() : tryPromiseSeveralTimesAsync(updateIpsAsync, [20, 40, 60]); - Promise.all([pacSetPromise, ipsErrorPromise]).then( - ([[pacErr, pacRes, ...pacWarns], ipsErr]) => { + Promise.all([pacSetPromise, ipsPromise]).then( + ([[pacErr, pacRes, ...pacWarns], [ipsErr, ipsRes, ...ipsWarns]]) => { - if (pacErr && ipsErr) { + if (pacErr) { return cb(pacErr, pacRes); } const warns = pacWarns; - if (ipsErr) { - warns.push(ipsErr); + if (ipsErr || ipsWarns.length) { + warns.push(...[ipsErr], ...ipsWarns); } this.pushToStorageAsync( (pushErr) => cb(pacErr || pushErr, null, ...warns), diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js b/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js index 3e6c8f6..88926c9 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js @@ -115,7 +115,7 @@ const promises = types.map( (type) => new Promise((resolve) => httpLib.get( - `https://dnsssssss.google.com/resolve?type=${type}&name=${host}&random_padding=${generateRandomHexString(30,500)}`, + `https://dns.google.com/resolve?type=${type}&name=${host}&random_padding=${generateRandomHexString(30,500)}`, (err, res) => { if (res) { @@ -282,7 +282,6 @@ ' блокировок может не отображаться.' ); } - console.log('IP ERRORS:', ipErrors); // TODO: cb(null, null, ipErrors); }); }, From 1aec32de3ee7d95b1ee042ffde26b2efb428a62d Mon Sep 17 00:00:00 2001 From: ilyaigpetrov Date: Tue, 31 Aug 2021 15:58:16 +0000 Subject: [PATCH 3/5] Add backup url for antizapret pac-script --- .../37-sync-pac-script-with-pac-provider-api.tmpl.js | 5 ++++- .../src/extension-common/_locales/en/messages.tmpl.json | 2 +- .../src/extension-common/_locales/ru/messages.tmpl.json | 2 +- .../src/extension-full/20-ip-to-host-api.js | 7 +++---- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js index 032c03d..8cd31b6 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js @@ -275,7 +275,10 @@
Comparison of PAC-scripts (ru). \`, order: 0, - pacUrls: ['https://antizapret.prostovpn.org/proxy.pac'], + pacUrls: [ + 'https://antizapret.prostovpn.org/proxy.pac', + 'https://rebrand.ly/ac-antizapret-pac', + ], }, Антицензорити: { distinctKey: 'Anticensority', diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/en/messages.tmpl.json b/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/en/messages.tmpl.json index 0b29668..830d5fb 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/en/messages.tmpl.json +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/en/messages.tmpl.json @@ -87,7 +87,7 @@ "message": "Error" }, "Non_critical_error": { - "message": "Non-critical error" + "message": "Non-critical error. Don't worry and go on" }, "Donate": { "message": "Donate" diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/ru/messages.tmpl.json b/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/ru/messages.tmpl.json index df185f4..0f4586c 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/ru/messages.tmpl.json +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/ru/messages.tmpl.json @@ -87,7 +87,7 @@ "message": "Ошибка" }, "Non_critical_error": { - "message": "Некритичная ошибка" + "message": "Некритичная ошибка. Всё хорошо, продолжайте работу" }, "Donate": { "message": "Поддержать" diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js b/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js index 88926c9..7e6a646 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js @@ -231,12 +231,11 @@ getIpsFor(hostStr, (err, ips, ...warns) => { console.log('Got IPs + err?:', ips, err); - if (!err) { - resolveIps(ips); - } else { + if (err) { reject([err, null, ...warns]); + return; } - + resolveIps(ips); }); }).then( From b77be6094623b6270a981a4a929156a3b4d17d05 Mon Sep 17 00:00:00 2001 From: ilyaigpetrov Date: Sun, 12 Sep 2021 07:41:15 +0000 Subject: [PATCH 4/5] Trying to trace bug with non-descriptive warnings --- .../37-sync-pac-script-with-pac-provider-api.tmpl.js | 8 ++++++-- .../extension-common/pages/options/src/components/App.js | 7 +++++++ .../src/extension-full/20-ip-to-host-api.js | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js index 8cd31b6..a897fee 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js @@ -488,8 +488,12 @@ return cb(pacErr, pacRes); } const warns = pacWarns; - if (ipsErr || ipsWarns.length) { - warns.push(...[ipsErr], ...ipsWarns); + if (ipsErr) { + warns.push(ipsErr); + } + if (ipsWarns.length) { + console.log('PUSHING W:', ipsWarns); // TODO: + warns.push(...ipsWarns); } this.pushToStorageAsync( (pushErr) => cb(pacErr || pushErr, null, ...warns), diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js index 6cf5a6a..4c7818e 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js @@ -215,6 +215,7 @@ export default function getApp(theState) { let messageHtml = err ? errToHtmlMessage(err) : ''; + console.log('WARNS:', warns); // TODO: const warningHtml = warns .filter((w) => w) .map( @@ -267,8 +268,14 @@ export default function getApp(theState) { this.switchInputs('off'); operation((err, res, ...warns) => { + if (warns.length && warns[0].length === 0) { + throw new Error('WWWWARNS'); // TODO: + } + console.log('W BEFORE:', warns); // TODO: warns = warns.filter( (w) => w ); + console.log('W AFTER:', warns); // TODO: if (err || warns.length) { + console.log('APP ERR, WARNS:', err, warns); // TODO: this.showErrors(err, ...warns); } else { this.setStatusTo(afterStatus); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js b/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js index 7e6a646..e9c9a7e 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js @@ -151,6 +151,7 @@ ([[v4err, v4res], [v6err, v6res]]) => { if(v4err) { + console.log('V4RES:', v4res); // TODO: return cb(v4err, v4res); } const ips = v4res; @@ -160,6 +161,7 @@ } else { warns = [v6err]; } + console.log('ALL WARNS FOR IPS:', warns); // TODO: cb(null, ips, ...warns); } From 93aa084de999c5c25a55c6c572600680007b133c Mon Sep 17 00:00:00 2001 From: ilyaigpetrov Date: Wed, 15 Sep 2021 16:27:23 +0000 Subject: [PATCH 5/5] Fix the bug with non-descriptive warnings. Make DNS errors non-critical --- .../37-sync-pac-script-with-pac-provider-api.tmpl.js | 1 - .../extension-common/_locales/en/messages.tmpl.json | 2 +- .../extension-common/_locales/ru/messages.tmpl.json | 2 +- .../pages/options/src/components/App.js | 8 -------- .../src/extension-full/20-ip-to-host-api.js | 11 +++++------ 5 files changed, 7 insertions(+), 17 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js index a897fee..cf604bc 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.tmpl.js @@ -492,7 +492,6 @@ warns.push(ipsErr); } if (ipsWarns.length) { - console.log('PUSHING W:', ipsWarns); // TODO: warns.push(...ipsWarns); } this.pushToStorageAsync( diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/en/messages.tmpl.json b/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/en/messages.tmpl.json index 830d5fb..5565d7a 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/en/messages.tmpl.json +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/en/messages.tmpl.json @@ -87,7 +87,7 @@ "message": "Error" }, "Non_critical_error": { - "message": "Non-critical error. Don't worry and go on" + "message": "Non-critical error. Don't worry: it works" }, "Donate": { "message": "Donate" diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/ru/messages.tmpl.json b/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/ru/messages.tmpl.json index 0f4586c..7648a63 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/ru/messages.tmpl.json +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/_locales/ru/messages.tmpl.json @@ -87,7 +87,7 @@ "message": "Ошибка" }, "Non_critical_error": { - "message": "Некритичная ошибка. Всё хорошо, продолжайте работу" + "message": "Некритичная ошибка. Всё хорошо, продолжаем работу" }, "Donate": { "message": "Поддержать" diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js index 4c7818e..cf4688e 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js @@ -215,7 +215,6 @@ export default function getApp(theState) { let messageHtml = err ? errToHtmlMessage(err) : ''; - console.log('WARNS:', warns); // TODO: const warningHtml = warns .filter((w) => w) .map( @@ -267,15 +266,8 @@ export default function getApp(theState) { this.setStatusTo(beforeStatus); this.switchInputs('off'); operation((err, res, ...warns) => { - - if (warns.length && warns[0].length === 0) { - throw new Error('WWWWARNS'); // TODO: - } - console.log('W BEFORE:', warns); // TODO: warns = warns.filter( (w) => w ); - console.log('W AFTER:', warns); // TODO: if (err || warns.length) { - console.log('APP ERR, WARNS:', err, warns); // TODO: this.showErrors(err, ...warns); } else { this.setStatusTo(afterStatus); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js b/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js index e9c9a7e..5907709 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-full/20-ip-to-host-api.js @@ -151,7 +151,6 @@ ([[v4err, v4res], [v6err, v6res]]) => { if(v4err) { - console.log('V4RES:', v4res); // TODO: return cb(v4err, v4res); } const ips = v4res; @@ -161,7 +160,6 @@ } else { warns = [v6err]; } - console.log('ALL WARNS FOR IPS:', warns); // TODO: cb(null, ips, ...warns); } @@ -275,15 +273,16 @@ Promise.all( promises ).then( (cbsRes) => { let ipErrors = cbsRes.map( ([err]) => err ).filter( (err) => err ); + let warns = []; if (ipErrors.length) { - ipErrors = clarify( + warns = [clarify( ipErrors, 'Не удалось получить один или несколько IP адресов для' + ' прокси-серверов. Иконка для уведомления об обходе' + ' блокировок может не отображаться.' - ); - } - cb(null, null, ipErrors); + )]; + } else {} + cb(null, null, ...warns); }); },