From 689f9266f7c7b85b663559a028eb4a9ac0a92a8e Mon Sep 17 00:00:00 2001 From: ilyaigpetrov Date: Tue, 25 Apr 2023 22:59:20 +0500 Subject: [PATCH] Add one more source for AntiZapret. Delete old update code. Move notes for reviewers from README to a separate file --- .../runet-censorship-bypass/README.md | 14 +--- ...c-pac-script-with-pac-provider-api.tmpl.js | 83 ++----------------- .../src/extension-common/FOR-REVIEWERS.md | 46 ++++++++++ .../src/extension-common/README.md | 1 - 4 files changed, 52 insertions(+), 92 deletions(-) create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/FOR-REVIEWERS.md delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/README.md diff --git a/extensions/chromium/runet-censorship-bypass/README.md b/extensions/chromium/runet-censorship-bypass/README.md index f0eac61..c073363 100644 --- a/extensions/chromium/runet-censorship-bypass/README.md +++ b/extensions/chromium/runet-censorship-bypass/README.md @@ -23,19 +23,7 @@ npm start # For Reviewers -Steps to reproduce the same zip: -``` -npm ci -cd src/extension-common/pages/options/ -npm ci -cd - -npm start -# See ./build/extension-full -cd ./build/extension-full -zip -r runet-censorship-bypass-full.zip ./* -``` - -https://antizapret.prostovpn.org/proxy.pac is generated by https://bitbucket.org/anticensority/antizapret-pac-generator-light/, reviewers may find justifications related to this PAC-script in that repo. +See ./src/extension-common/FOR-REVIEWERS.md. # Release Instructions 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 cf604bc..1e6adf2 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 @@ -230,7 +230,7 @@ ); return (ifUnattended ? tryPromiseSeveralTimesAsync(tryAllUrlsAsync, [20, 40, 60]) - : tryAllUrlsAsync() + : tryAllUrlsAsync() ).catch( (err) => Promise.reject(clarify( err, @@ -276,7 +276,7 @@ \`, order: 0, pacUrls: [ - 'https://antizapret.prostovpn.org/proxy.pac', + 'https://antizapret.prostovpn.org:8443/proxy.pac', 'https://rebrand.ly/ac-antizapret-pac', ], }, @@ -588,34 +588,6 @@ 'handlers-ext-error', 'handlers-no-control', ]; - - if (!Object.keys(oldAntiCensorRu).length) { - const storage = await window.utils.promisedLocalStorage.get(null); - if (storage.version && window.apis.version.isLeq(storage.version, '0.0.1.48')) { - const ffxPacData = storage['firefox-only-pac-data']; - delete storage['firefox-only-pac-data']; - await window.utils.promisedLocalStorage.clear(); - for(const key of otherKeys) { - await window.utils.promisedLocalStorage.set({ [key]: storage[key] }); - delete storage[key]; - } - await window.utils.promisedLocalStorage.set({ antiCensorRu: storage }); - oldAntiCensorRu = storage; - } - } - if (oldAntiCensorRu.version && window.apis.version.isLeq(oldAntiCensorRu.version, '0.0.1.49')) { - const modsMutated = window.apis.pacKitchen.getPacModsRaw(); - if (modsMutated && modsMutated.exceptions) { - modsMutated.exceptions = Object.entries(modsMutated.exceptions).reduce((acc, [host, ifProxy]) => { - acc[\`*.\${host}\`] = ifProxy; - return acc; - }, {}); - await new Promise( - (resolve) => window.apis.pacKitchen.keepCookedNowAsync(modsMutated, resolve), - ); - } - } - /* Event handlers that ALWAYS work (even if installation is not done or failed). @@ -706,54 +678,9 @@ console.log('Updating from', oldAntiCensorRu.version, 'to', antiCensorRu.version); try { - if (window.apis.version.isLeq(oldAntiCensorRu.version, '0.0.1.5')) { - - // Change semicolons to semicolons followed by newlines in proxy string (raw). - const migrateProxies = (oldStr) => oldStr.replace(/;\\r?\\n?/g, ';\\n'); - const modsMutated = window.apis.pacKitchen.getPacModsRaw(); - if (modsMutated) { - modsMutated['customProxyStringRaw'] = migrateProxies(modsMutated['customProxyStringRaw']); - await new Promise( - (resolve) => window.apis.pacKitchen.keepCookedNowAsync(modsMutated, resolve), - ); - } - - } - if (window.apis.version.isLeq(oldAntiCensorRu.version, '0.0.1.25')) { - - console.log('Switch to Antizapret automatically, only from Anitcensority without own proxies.'); - const provKey = antiCensorRu.getCurrentPacProviderKey(); - if (provKey !== 'Антицензорити' && provKey !== 'Антизапрет') { - console.log('Current provider', provKey, '!== Anticensority or Antizapret'); - return; // Not Anticensority. - } - const pacMods = window.apis.pacKitchen.getPacMods(); - if (pacMods.filteredCustomsString) { - console.log('Proxies found:', pacMods.filteredCustomsString); - return; // Own proxies or Tor are used. - } - antiCensorRu.setCurrentPacProviderKey('Антизапрет'); - antiCensorRu.setLastModified(0); - await new Promise((resolveSwitch) => - - antiCensorRu.syncWithPacProviderAsync((err, res, warns) => { - - if (warns) { - console.log(warns); - } - if (err) { - console.log( - 'Ungraceful update from 1.25: couldn\\'t fetch Antizapret:', - ); - console.error(err); - } else { - console.log('Update from 1.25 applied successfully.'); - } - resolveSwitch(); - - }), - ); - + if (window.apis.version.isLeq(oldAntiCensorRu.version, '0.0.1.56')) { + window.apis.antiCensorRu.pacProviders['Антизапрет'].pacUrls[0] = 'https://antizapret.prostovpn.org:8443/proxy.pac'; + console.log('Successfully updated to 0.0.1.57.'); } } catch (e) { // Log update error. diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/FOR-REVIEWERS.md b/extensions/chromium/runet-censorship-bypass/src/extension-common/FOR-REVIEWERS.md new file mode 100644 index 0000000..1e5943e --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/FOR-REVIEWERS.md @@ -0,0 +1,46 @@ +# For Reviewers + +## Prerequirements + +You need a globally installed `gulp-cli@2.3.0`. +See https://gulpjs.com/docs/en/getting-started/quick-start#install-the-gulp-command-line-utility. + +## Steps + +Steps to reproduce the same zip: +``` +npm ci +cd src/extension-common/pages/options/ +npm ci +cd - +npm start +# See ./build/extension-full +cd ./build/extension-full +zip -r runet-censorship-bypass-full.zip ./* +``` + +## Minified Files + +### Ace Editor + +https://ace.c9.io -> https://github.com/ajaxorg/ace -> Building Ace -> "The ace-builds repository endeavours to maintain the latest build" -> https://github.com/ajaxorg/ace-builds/ -> Select tag of 1.2.5, open https://github.com/ajaxorg/ace-builds/tree/v1.2.5/src-min and download the files you want to check. + + +``` +mkdir downloaded +cd downloaded +wget https://raw.githubusercontent.com/ajaxorg/ace-builds/v1.2.5/src-min/ace.js +wget https://raw.githubusercontent.com/ajaxorg/ace-builds/v1.2.5/src-min/ext-searchbox.js +wget https://raw.githubusercontent.com/ajaxorg/ace-builds/v1.2.5/src-min/mode-javascript.js +wget https://raw.githubusercontent.com/ajaxorg/ace-builds/v1.2.5/src-min/worker-javascript.js + +downloaded$ for i in ./*; do md5sum "$i"; done +2b9a1157bb3ba711a0402b6751d9ac71 ./ace.js +1f73efaff2853571af0e701c5e9a15ee ./ext-searchbox.js +e5eebd85c4e66667c28f124e6a07e3ed ./mode-javascript.js +f0d1342102d16ab7abe319b2683d10ea ./worker-javascript.js +``` + +## PAC-Script AntiZapret + +https://antizapret.prostovpn.org/proxy.pac is generated by https://bitbucket.org/anticensority/antizapret-pac-generator-light/, reviewers may find justifications related to this PAC-script in that repo. \ No newline at end of file diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/README.md b/extensions/chromium/runet-censorship-bypass/src/extension-common/README.md deleted file mode 100644 index 03f3faf..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/README.md +++ /dev/null @@ -1 +0,0 @@ -Files of this directory must be copied into final build without modifications. \ No newline at end of file