Merge branch 'development' into production

This commit is contained in:
Ilya Ig. Petrov 2019-04-15 07:54:34 +00:00
commit e6d5be6e56
13 changed files with 2952 additions and 1240 deletions

View File

@ -21,7 +21,7 @@ I believe __information mustn't be blocked based on political or other subjectiv
My maxim is _"Your freedom ends when it starts to confine the freedom of others"_. My maxim is _"Your freedom ends when it starts to confine the freedom of others"_.
See [my other arguments against censorship (ru)](https://gist.github.com/ilyaigpetrov/9452b93ef3d7dd3d8cc2) See [my other arguments against censorship (ru)](https://rebrand.ly/ac-arguments)
Looking at how Russian government [distorts TV](https://therussianreader.wordpress.com/2015/11/22/russian-truckers-strike-dagestan/) and blocks [critics of Putin](http://www.reuters.com/article/2014/03/13/us-russia-internet-idUSBREA2C21L20140313), Looking at how Russian government [distorts TV](https://therussianreader.wordpress.com/2015/11/22/russian-truckers-strike-dagestan/) and blocks [critics of Putin](http://www.reuters.com/article/2014/03/13/us-russia-internet-idUSBREA2C21L20140313),
I decided to write an anticensorship extension for Chromium before they strike me first. I decided to write an anticensorship extension for Chromium before they strike me first.
@ -37,7 +37,7 @@ I decided to write an anticensorship extension for Chromium before they strike m
## Contributors ## Contributors
This project exists thanks to all the people who contribute. This project exists thanks to all the people who contribute.
<a href="graphs/contributors"><img src="https://opencollective.com/anticensority/contributors.svg?width=890&button=false" /></a> <a href="graphs/contributors"><img src="https://opencollective.com/anticensority/contributors.svg?width=890&button=false?force" /></a>
## Backers ## Backers

View File

@ -1,8 +1,5 @@
# Install # Install
Nodejs 10 and gulp have [issues](https://github.com/nodejs/node/issues/20285),
use nodejs 8 instead for a while.
``` ```
npm install npm install
cd src/extension-common/pages/options/ cd src/extension-common/pages/options/
@ -14,10 +11,7 @@ use your build/extension-beta
# Release # Release
1. `vim src/extension-common/pages/options/src/components/App.js` 1. `npm run release`
2. Change github link there. 2. `vim src/templates-data.js` and bump version.
3. `npm run release` 3. Commit bumped version.
4. Change `App.js` back to original: `git checkout src/extension-common/pages/options/src/components/App.js` 4. Merge development to production (usually after deployment and testing and many patches).
5. `vim src/templates-data.js` and bump version.
6. Commit bumped version.
7. Merge development to production (usually after deployment and testing and many patches).

View File

@ -18,8 +18,7 @@
Если расширение не работает: https://git.io/vgDDj Если расширение не работает: https://git.io/vgDDj
Антицензура на Реддите: https://www.reddit.com/r/anticensorship_russia Антицензура на Реддите: https://www.reddit.com/r/anticensorship_russia
Группа в G+: https://goo.gl/Lh0Cjh История изменений: https://github.com/anticensority/runet-censorship-bypass/releases
История изменений: https://github.com/ilyaigpetrov/anti-censorship-russia/releases
# Дополнительно # Дополнительно

View File

@ -3,7 +3,7 @@
const gulp = require('gulp'); const gulp = require('gulp');
const del = require('del'); const del = require('del');
const through = require('through2'); const through = require('through2');
const PluginError = require('gulp-util').PluginError; const PluginError = require('plugin-error');
const changed = require('gulp-changed'); const changed = require('gulp-changed');
const PluginName = 'Template literals'; const PluginName = 'Template literals';
@ -29,7 +29,7 @@ const templatePlugin = (context) => through.obj(function(file, encoding, cb) {
}, { keys: [], values: [] }); }, { keys: [], values: [] });
try { try {
file.contents = new Buffer( file.contents = Buffer.from(
(new Function(...keys, 'return `' + String(file.contents) + '`;'))(...values) (new Function(...keys, 'return `' + String(file.contents) + '`;'))(...values)
); );
} catch(e) { } catch(e) {
@ -43,14 +43,13 @@ const templatePlugin = (context) => through.obj(function(file, encoding, cb) {
}); });
gulp.task('default', ['build:beta']);
gulp.task('clean', function(cb) { const clean = function(cb) {
//return del.sync('./build'); //return del.sync('./build');
return cb(); return cb();
}); };
const contexts = require('./src/templates-data').contexts; const contexts = require('./src/templates-data').contexts;
@ -69,16 +68,16 @@ const firefoxSrc = './src/extension-firefox/**/*';
const joinSrc = (...args) => [...args, ...excluded]; const joinSrc = (...args) => [...args, ...excluded];
gulp.task('_cp-mini', function(cb) { const copyMini = function(cb) {
gulp.src(joinSrc(commonSrc, miniSrc)) gulp.src(joinSrc(commonSrc, miniSrc))
//.pipe(changed(miniDst)) //.pipe(changed(miniDst))
.pipe(templatePlugin(contexts.mini)) .pipe(templatePlugin(contexts.mini))
.pipe(gulp.dest(miniDst)) .pipe(gulp.dest(miniDst))
.on('end', cb); .on('end', cb);
}); };
gulp.task('_cp-full', function(cb) { const copyFull = function(cb) {
gulp.src(joinSrc(commonSrc, fullSrc)) gulp.src(joinSrc(commonSrc, fullSrc))
//.pipe(changed(fullDst)) //.pipe(changed(fullDst))
@ -86,19 +85,9 @@ gulp.task('_cp-full', function(cb) {
.pipe(gulp.dest(fullDst)) .pipe(gulp.dest(fullDst))
.on('end', cb); .on('end', cb);
}); };
gulp.task('_cp-firefox', function(cb) { const copyBeta = function(cb) {
gulp.src(joinSrc(commonSrc, fullSrc, firefoxSrc))
//.pipe(changed(fullDst))
.pipe(templatePlugin(contexts.firefox))
.pipe(gulp.dest(firefoxDst))
.on('end', cb);
});
gulp.task('_cp-beta', function(cb) {
gulp.src(joinSrc(commonSrc, fullSrc)) gulp.src(joinSrc(commonSrc, fullSrc))
//.pipe(changed(fullDst)) //.pipe(changed(fullDst))
@ -106,8 +95,13 @@ gulp.task('_cp-beta', function(cb) {
.pipe(gulp.dest(betaDst)) .pipe(gulp.dest(betaDst))
.on('end', cb); .on('end', cb);
}); };
gulp.task('build:all', ['_cp-mini', '_cp-full', '_cp-beta', '_cp-firefox']); const buildAll = gulp.parallel(copyMini, copyFull, copyBeta);
gulp.task('build:beta', ['_cp-beta']); const buildBeta = copyBeta;
gulp.task('build:firefox', ['_cp-firefox']);
module.exports = {
default: buildAll,
buildAll,
buildBeta,
};

File diff suppressed because it is too large Load Diff

View File

@ -8,8 +8,8 @@
"test": "mocha --recursive ./src/**/test/*", "test": "mocha --recursive ./src/**/test/*",
"subpages": "cd ./src/extension-common/pages/options/ && npm run build && cd -", "subpages": "cd ./src/extension-common/pages/options/ && npm run build && cd -",
"subpages:dev": "cd ./src/extension-common/pages/options/ && npm run build:dev:nocomp && cd -", "subpages:dev": "cd ./src/extension-common/pages/options/ && npm run build:dev:nocomp && cd -",
"start": "npm run subpages:dev && npm run gulp build:beta", "start": "npm run subpages:dev && npm run gulp buildAll",
"release": "npm run subpages && npm run gulp build:all" "release": "npm run subpages && npm run gulp buildAll"
}, },
"author": "Ilya Ig. Petrov", "author": "Ilya Ig. Petrov",
"license": "GPLv3", "license": "GPLv3",
@ -23,8 +23,9 @@
"symlink-to": "^0.0.4" "symlink-to": "^0.0.4"
}, },
"dependencies": { "dependencies": {
"del": "^2.2.2", "del": "^3.0.0",
"gulp": "^3.9.1", "gulp": "^4.0.0",
"through2": "^2.0.3" "plugin-error": "^1.0.1",
"through2": "^3.0.0"
} }
} }

View File

@ -19,6 +19,14 @@
*/ */
/*
Due to History
- *Async suffix usually means that function requires a cb.
It may not be related to async (returning a Promise).
This naming is confusing and should be reconsidered.
*/
{ // Private namespace starts. { // Private namespace starts.
const mandatory = window.utils.mandatory; const mandatory = window.utils.mandatory;
@ -50,7 +58,7 @@
}; };
const setPacAsync = function setPacAsync( const setPacAsync = function setPacAsync(
pacData = mandatory(), cb = throwIfError pacData = mandatory(), cb = throwIfError,
) { ) {
const config = { const config = {
@ -72,7 +80,7 @@
console.warn('Failed, other extension is in control.'); console.warn('Failed, other extension is in control.');
return cb( return cb(
new Error( window.utils.messages.whichExtensionHtml() ) new Error( window.utils.messages.whichExtensionHtml() ),
); );
} }
@ -91,20 +99,20 @@
cb = asyncLogGroup( cb = asyncLogGroup(
'Getting IPs for PAC hosts...', 'Getting IPs for PAC hosts...',
cb cb,
); );
window.utils.fireRequest('ip-to-host-update-all', cb); window.utils.fireRequest('ip-to-host-update-all', cb);
}; };
const setPacScriptFromProviderAsync = async function setPacScriptFromProviderAsync( const setPacScriptFromProviderAsync = function setPacScriptFromProviderAsync(
provider, lastModifiedStr = mandatory(), cb = throwIfError provider, lastModifiedStr = mandatory(), cb = throwIfError,
) { ) {
const pacUrl = provider.pacUrls[0]; const pacUrl = provider.pacUrls[0];
cb = asyncLogGroup( cb = asyncLogGroup(
'Getting PAC script from provider...', pacUrl, 'Getting PAC script from provider...', pacUrl,
cb cb,
); );
const warnings = []; const warnings = [];
@ -119,9 +127,8 @@
addWarning( addWarning(
\` \`
Не найдено СВОИХ прокси. Этот PAC-скрипт Не найдено СВОИХ прокси. Этот PAC-скрипт
<a href="https://github.com/anticensority/runet-censorship-bypass/issues/10#issuecomment-387436191">теперь</a>
работает только со <a href="https://git.io/ac-own-proxy">СВОИМИ прокси</a> работает только со <a href="https://git.io/ac-own-proxy">СВОИМИ прокси</a>
(по умолчанию используется локальный <a href="https://git.io/ac-tor">TOR</a> и прокси "Антизапрет", для их отключения: Свои прокси -> откл. "Использовать прокси PAC-скрипта"). (по умолчанию будет использоваться локальный <a href="https://git.io/ac-tor">Tor</a>).
\`, \`,
); );
} }
@ -131,15 +138,14 @@
httpLib.ifModifiedSince(pacUrl, lastModifiedStr, (err, newLastModifiedStr) => { httpLib.ifModifiedSince(pacUrl, lastModifiedStr, (err, newLastModifiedStr) => {
if (!newLastModifiedStr) { if (!newLastModifiedStr) {
const res = {lastModified: lastModifiedStr};
const ifWasEverModified = lastModifiedStr !== new Date(0).toUTCString(); const ifWasEverModified = lastModifiedStr !== new Date(0).toUTCString();
if (ifWasEverModified) { if (ifWasEverModified) {
addWarning( addWarning(
'Ваш PAC-скрипт не нуждается в обновлении. Его дата: ' + 'Ваш PAC-скрипт не нуждается в обновлении. Его дата: ' +
lastModifiedStr lastModifiedStr,
); );
const res = {lastModified: lastModifiedStr};
return cb(null, res); return cb(null, res);
} }
} }
@ -150,11 +156,11 @@
() => new Promise( () => new Promise(
(resolve, reject) => httpLib.get( (resolve, reject) => httpLib.get(
url, url,
(newErr, pacData) => newErr ? reject(newErr) : resolve(pacData) (newErr, pacData) => newErr ? reject(newErr) : resolve(pacData),
)
)
), ),
Promise.reject() ),
),
Promise.reject(),
); );
pacDataPromise.then( pacDataPromise.then(
@ -166,7 +172,7 @@
(err, res) => cb( (err, res) => cb(
err, err,
Object.assign(res || {}, {lastModified: newLastModifiedStr}), Object.assign(res || {}, {lastModified: newLastModifiedStr}),
) ),
); );
}, },
@ -223,7 +229,7 @@
order: 99, order: 99,
pacUrls: [ pacUrls: [
'data:application/x-ns-proxy-autoconfig,' + escape('function FindProxyForURL(){ return "DIRECT"; }'), 'data:application/x-ns-proxy-autoconfig,' + escape('function FindProxyForURL(){ return "DIRECT"; }'),
] ],
} }
}, },
@ -239,6 +245,12 @@
Do something, e.g. initiate PAC sync. Do something, e.g. initiate PAC sync.
*/ */
ifFirstInstall: false, ifFirstInstall: false,
/* We have .lastPacUpdateStamp and ._currentPacProviderLastModified.
LastModified is received from a server, we kind of don't trust it,
just use it for cache and maybe show to the user.
UpdateStamp is got from client and we base our timers on it,
malicious server can't interfere with it.
*/
lastPacUpdateStamp: 0, lastPacUpdateStamp: 0,
setTitle() { setTitle() {
@ -251,7 +263,7 @@
}, },
_currentPacProviderLastModified: 0, // Not initialized. _currentPacProviderLastModified: 0,
getLastModifiedForKey(key = mandatory()) { getLastModifiedForKey(key = mandatory()) {
@ -284,7 +296,7 @@
setCurrentPacProviderKey( setCurrentPacProviderKey(
newKey = mandatory(), newKey = mandatory(),
lastModified = new Date().toUTCString() lastModified = new Date().toUTCString(),
) { ) {
this.mustBeKey(newKey); this.mustBeKey(newKey);
@ -324,7 +336,7 @@
chrome.storage.local.clear( chrome.storage.local.clear(
() => chrome.storage.local.set( () => chrome.storage.local.set(
onlySettable, onlySettable,
chromified(cb) chromified(cb),
) )
); );
@ -368,8 +380,8 @@
const ipsErrorPromise = new Promise( const ipsErrorPromise = new Promise(
(resolve, reject) => updatePacProxyIps( (resolve, reject) => updatePacProxyIps(
resolve resolve,
) ),
); );
Promise.all([pacSetPromise, ipsErrorPromise]).then( Promise.all([pacSetPromise, ipsErrorPromise]).then(
@ -383,7 +395,7 @@
warns.push(ipsErr); warns.push(ipsErr);
} }
this.pushToStorageAsync( this.pushToStorageAsync(
(pushErr) => cb(pacErr || pushErr, null, ...warns) (pushErr) => cb(pacErr || pushErr, null, ...warns),
); );
}, },
@ -410,7 +422,7 @@
console.log( console.log(
'Next PAC update is scheduled on', 'Next PAC update is scheduled on',
new Date(nextUpdateMoment).toLocaleString('ru-RU') new Date(nextUpdateMoment).toLocaleString('ru-RU'),
); );
chrome.alarms.create( chrome.alarms.create(
@ -453,11 +465,11 @@
} }
this.setCurrentPacProviderKey(null); this.setCurrentPacProviderKey(null);
this.pushToStorageAsync( this.pushToStorageAsync(
() => handlers.updateControlState(cb) () => handlers.updateControlState(cb),
); );
}) }),
) ),
); );
}, },
@ -485,7 +497,7 @@
if (alarm.name === antiCensorRu._periodicUpdateAlarmReason) { if (alarm.name === antiCensorRu._periodicUpdateAlarmReason) {
console.log( console.log(
'Periodic PAC update triggered:', 'Periodic PAC update triggered:',
new Date().toLocaleString('ru-RU') new Date().toLocaleString('ru-RU'),
); );
antiCensorRu.syncWithPacProviderAsync(() => {/* swallow */}); antiCensorRu.syncWithPacProviderAsync(() => {/* swallow */});
} }
@ -525,7 +537,7 @@
|| antiCensorRu._currentPacProviderLastModified; || antiCensorRu._currentPacProviderLastModified;
console.log( console.log(
'Last PAC update was on', 'Last PAC update was on',
new Date(antiCensorRu.lastPacUpdateStamp).toLocaleString('ru-RU') new Date(antiCensorRu.lastPacUpdateStamp).toLocaleString('ru-RU'),
); );

View File

@ -8,7 +8,7 @@
"icons": { "icons": {
"128": "/icons/default-128.png" "128": "/icons/default-128.png"
}, },
"author": "ilyaigpetrov@gmail.com", "author": "anticensority+owners@googlegroups.com",
"permissions": [ "permissions": [
"proxy" "proxy"

View File

@ -1096,7 +1096,8 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.1.1", "version": "1.1.1",
@ -1147,7 +1148,8 @@
"balanced-match": { "balanced-match": {
"version": "0.4.2", "version": "0.4.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"bcrypt-pbkdf": { "bcrypt-pbkdf": {
"version": "1.0.1", "version": "1.0.1",
@ -1162,6 +1164,7 @@
"version": "0.0.9", "version": "0.0.9",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"inherits": "~2.0.0" "inherits": "~2.0.0"
} }
@ -1170,6 +1173,7 @@
"version": "2.10.1", "version": "2.10.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"hoek": "2.x.x" "hoek": "2.x.x"
} }
@ -1178,6 +1182,7 @@
"version": "1.1.7", "version": "1.1.7",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^0.4.1", "balanced-match": "^0.4.1",
"concat-map": "0.0.1" "concat-map": "0.0.1"
@ -1186,7 +1191,8 @@
"buffer-shims": { "buffer-shims": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"caseless": { "caseless": {
"version": "0.12.0", "version": "0.12.0",
@ -1203,12 +1209,14 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"combined-stream": { "combined-stream": {
"version": "1.0.5", "version": "1.0.5",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"delayed-stream": "~1.0.0" "delayed-stream": "~1.0.0"
} }
@ -1216,22 +1224,26 @@
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"cryptiles": { "cryptiles": {
"version": "2.0.5", "version": "2.0.5",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"boom": "2.x.x" "boom": "2.x.x"
} }
@ -1271,7 +1283,8 @@
"delayed-stream": { "delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"delegates": { "delegates": {
"version": "1.0.0", "version": "1.0.0",
@ -1303,7 +1316,8 @@
"extsprintf": { "extsprintf": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"forever-agent": { "forever-agent": {
"version": "0.6.1", "version": "0.6.1",
@ -1325,12 +1339,14 @@
"fs.realpath": { "fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"fstream": { "fstream": {
"version": "1.0.11", "version": "1.0.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"graceful-fs": "^4.1.2", "graceful-fs": "^4.1.2",
"inherits": "~2.0.0", "inherits": "~2.0.0",
@ -1386,6 +1402,7 @@
"version": "7.1.2", "version": "7.1.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
@ -1398,7 +1415,8 @@
"graceful-fs": { "graceful-fs": {
"version": "4.1.11", "version": "4.1.11",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"har-schema": { "har-schema": {
"version": "1.0.5", "version": "1.0.5",
@ -1426,6 +1444,7 @@
"version": "3.1.3", "version": "3.1.3",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"boom": "2.x.x", "boom": "2.x.x",
"cryptiles": "2.x.x", "cryptiles": "2.x.x",
@ -1436,7 +1455,8 @@
"hoek": { "hoek": {
"version": "2.16.3", "version": "2.16.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"http-signature": { "http-signature": {
"version": "1.1.1", "version": "1.1.1",
@ -1453,6 +1473,7 @@
"version": "1.0.6", "version": "1.0.6",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"once": "^1.3.0", "once": "^1.3.0",
"wrappy": "1" "wrappy": "1"
@ -1461,7 +1482,8 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.4", "version": "1.3.4",
@ -1473,6 +1495,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "1.0.1" "number-is-nan": "1.0.1"
} }
@ -1486,7 +1509,8 @@
"isarray": { "isarray": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"isstream": { "isstream": {
"version": "0.1.2", "version": "0.1.2",
@ -1559,12 +1583,14 @@
"mime-db": { "mime-db": {
"version": "1.27.0", "version": "1.27.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"mime-types": { "mime-types": {
"version": "2.1.15", "version": "2.1.15",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"mime-db": "1.27.0" "mime-db": "1.27.0"
} }
@ -1573,6 +1599,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "1.1.7" "brace-expansion": "1.1.7"
} }
@ -1580,12 +1607,14 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"mkdirp": { "mkdirp": {
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
@ -1640,7 +1669,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"oauth-sign": { "oauth-sign": {
"version": "0.8.2", "version": "0.8.2",
@ -1658,6 +1688,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
@ -1687,7 +1718,8 @@
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"performance-now": { "performance-now": {
"version": "0.2.0", "version": "0.2.0",
@ -1698,7 +1730,8 @@
"process-nextick-args": { "process-nextick-args": {
"version": "1.0.7", "version": "1.0.7",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"punycode": { "punycode": {
"version": "1.4.1", "version": "1.4.1",
@ -1736,6 +1769,7 @@
"version": "2.2.9", "version": "2.2.9",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"buffer-shims": "~1.0.0", "buffer-shims": "~1.0.0",
"core-util-is": "~1.0.0", "core-util-is": "~1.0.0",
@ -1780,6 +1814,7 @@
"version": "2.6.1", "version": "2.6.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"glob": "^7.0.5" "glob": "^7.0.5"
} }
@ -1787,7 +1822,8 @@
"safe-buffer": { "safe-buffer": {
"version": "5.0.1", "version": "5.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"semver": { "semver": {
"version": "5.3.0", "version": "5.3.0",
@ -1811,6 +1847,7 @@
"version": "1.0.9", "version": "1.0.9",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"hoek": "2.x.x" "hoek": "2.x.x"
} }
@ -1844,6 +1881,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
@ -1854,6 +1892,7 @@
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.0.1" "safe-buffer": "^5.0.1"
} }
@ -1868,6 +1907,7 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
@ -1882,6 +1922,7 @@
"version": "2.2.1", "version": "2.2.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"block-stream": "*", "block-stream": "*",
"fstream": "^1.0.2", "fstream": "^1.0.2",
@ -1937,7 +1978,8 @@
"util-deprecate": { "util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"uuid": { "uuid": {
"version": "3.0.1", "version": "3.0.1",
@ -1966,7 +2008,8 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
} }
} }
}, },

View File

@ -69,31 +69,21 @@
const reinit = function reinit() { const reinit = function reinit() {
// Defaults.
const _antizapret = {
/* Don't use directly, please. /* Don't use directly, please.
Encoded to counter abuse. */ Encoded to counter abuse.
host: '\x70\x72\x6f\x78\x79\x2e\x61\x6e\x74\x69\x7a\x61\x70\x72\x65\x74\x2e\x70\x72\x6f\x73\x74\x6f\x76\x70\x6e\x2e\x6f\x72\x67', */
}; privates._strToHostObj = [
const proxyForRanges = // antizapret.prostovpn.org:
'\x63\x63\x61\x68\x69\x68\x61\x2e\x61\x6e\x74\x69\x7a\x61\x70\x72\x65\x74\x2e\x70\x72\x6f\x73\x74\x6f\x76\x70\x6e\x2e\x6f\x72\x67'; '\x70\x72\x6f\x78\x79\x2e\x61\x6e\x74\x69\x7a\x61\x70\x72\x65\x74\x2e\x70\x72\x6f\x73\x74\x6f\x76\x70\x6e\x2e\x6f\x72\x67', // Antizapret old.
privates._strToHostObj = { '\x63\x63\x61\x68\x69\x68\x61\x2e\x61\x6e\x74\x69\x7a\x61\x70\x72\x65\x74\x2e\x70\x72\x6f\x73\x74\x6f\x76\x70\x6e\x2e\x6f\x72\x67', // Antizapret for ranges.
[_antizapret.host]: _antizapret, '\x70\x72\x6f\x78\x79\x2d\x73\x73\x6c\x2e\x61\x6e\x74\x69\x7a\x61\x70\x72\x65\x74\x2e\x70\x72\x6f\x73\x74\x6f\x76\x70\x6e\x2e\x6f\x72\x67', // Antizapret SSL.
[proxyForRanges]: { host: proxyForRanges }, '\x70\x72\x6f\x78\x79\x2d\x6e\x6f\x73\x73\x6c\x2e\x61\x6e\x74\x69\x7a\x61\x70\x72\x65\x74\x2e\x70\x72\x6f\x73\x74\x6f\x76\x70\x6e\x2e\x6f\x72\x67', // Antizapret w/o SSL.
['localhost']: { host: 'localhost' }, ].reduce((acc, hostname) => ({...acc, [hostname]: { host: hostname }}), {
}; // Defaults:
localhost: { host: 'localhost' },
});
privates._ipToHostObj = {}; privates._ipToHostObj = {};
for( const ip of [
// IPs of Antizapret.
'195.123.209.38',
'137.74.171.91',
'51.15.39.201',
'2001:bc8:4700:2300::1:d07',
'2a02:27ac::10',
] ) {
privates._ipToHostObj[ip] = _antizapret;
}
// Persisted. // Persisted.
const ipToHost = _state(ip2host); const ipToHost = _state(ip2host);

View File

@ -9,8 +9,6 @@
to "loading". to "loading".
So if you set a title earlier it may be cleared by browser. So if you set a title earlier it may be cleared by browser.
It pertains not only to page refesh but to newly opened pages too. It pertains not only to page refesh but to newly opened pages too.
Also on loosing title see:
https://github.com/ilyaigpetrov/repository-for-chrome-bugs/blob/master/browserAction-title-lost-after-setting/background.js
Crazy parallel Chrome. Crazy parallel Chrome.
**/ **/

View File

@ -10,7 +10,7 @@ const pacUrls = [
]; ];
const commonContext = { const commonContext = {
version: '1.29', version: '1.30',
anticensorityPacUrls: [ anticensorityPacUrls: [
...pacUrls, ...pacUrls,
], ],

View File

@ -5,7 +5,7 @@
"scripts": { "scripts": {
"postinstall": "opencollective postinstall" "postinstall": "opencollective postinstall"
}, },
"author": "ilyaigpetrov", "author": "anticensority+owners@googlegroups.com",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"opencollective": "^1.0.3" "opencollective": "^1.0.3"