mirror of
https://github.com/anticensority/runet-censorship-bypass.git
synced 2024-11-24 02:13:43 +03:00
changed name, -bugs: migration & alarms
This commit is contained in:
parent
046dfdbdec
commit
3e89c372b9
|
@ -9,7 +9,7 @@
|
|||
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 concurrent Chrome.
|
||||
Crazy parallel Chrome.
|
||||
**/
|
||||
window.onTabUpdated = {};
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 901 B |
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"manifest_version": 2,
|
||||
|
||||
"name": "Ненавязчивый РосКомНадзор NEW",
|
||||
"name": "Обход блокировок Рунета",
|
||||
"description": "Аргументы против цензуры: https://git.io/vEkI9",
|
||||
"version": "0.0.0.10",
|
||||
"icons": {
|
||||
|
|
|
@ -18,10 +18,8 @@ function renderPage() {
|
|||
status.classList.add('off');
|
||||
}
|
||||
|
||||
console.log('ABC');
|
||||
chrome.runtime.getBackgroundPage( backgroundPage => {
|
||||
|
||||
backgroundPage.console.log('Options page opened.');
|
||||
var antiCensorRu = backgroundPage.antiCensorRu;
|
||||
|
||||
// SET DATE
|
||||
|
@ -129,7 +127,7 @@ function renderPage() {
|
|||
<a href class="ext">chrome://extensions</a> › Это расширение › Отладка страниц: фоновая страница › Console (DevTools)';
|
||||
getStatus().replaceChild(div, this);
|
||||
div.querySelector('.ext').onclick = () => {
|
||||
chrome.tabs.create({ url: "chrome://extensions" });
|
||||
chrome.tabs.create({ url: 'chrome://extensions?id='+ chrome.runtime.id });
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
'use strict';
|
||||
|
||||
/*
|
||||
Task 1. Gets IP for host proxy.antizapret.prostovpn.org with dns-lg.com.
|
||||
This IP is used in block-informer to inform user when proxy is ON.
|
||||
Task 2. Downloads PAC proxy script from Antizapret and sets it in Chromium settings.
|
||||
Task 3. Schedules tasks 1 & 2 for every 2 hours.
|
||||
Task 1. Gets IPs for proxies of antizapret/anticenz with dns-lg.com.
|
||||
These IPs are used in block-informer to inform user when proxy is ON.
|
||||
Task 2. Downloads PAC proxy script from antizapret/anticenz/my Google Drive and sets it in Chromium settings.
|
||||
Task 3. Schedules tasks 1 & 2 for every 4 hours.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
In background scripts use window.antiCensorRu public variables.
|
||||
In pages window.antiCensorRu are not accessible,
|
||||
|
@ -64,7 +63,6 @@ window.antiCensorRu = {
|
|||
lastPacUpdateStamp: 0,
|
||||
|
||||
// PROTECTED
|
||||
|
||||
_periodicUpdateAlarmReason: 'Периодичное обновление PAC-скрипта Антизапрет',
|
||||
|
||||
pushToStorage(cb) {
|
||||
|
@ -98,6 +96,8 @@ window.antiCensorRu = {
|
|||
|
||||
syncWithPacProvider(cb) {
|
||||
var cb = cb || (() => {});
|
||||
if (!this.pacProvider)
|
||||
return cb({clarification: 'Сперва выберите PAC-провайдера.'});
|
||||
|
||||
var pacSetPromise = new Promise(
|
||||
(resolve, reject) => setPacScriptFromProvider(
|
||||
|
@ -126,6 +126,13 @@ window.antiCensorRu = {
|
|||
}
|
||||
);
|
||||
},
|
||||
|
||||
setAlarms() {
|
||||
chrome.alarms.create(
|
||||
this._periodicUpdateAlarmReason,
|
||||
{ periodInMinutes: 4*60 }
|
||||
);
|
||||
},
|
||||
|
||||
installPac(key, cb) {
|
||||
|
||||
|
@ -138,11 +145,8 @@ window.antiCensorRu = {
|
|||
this.currentPacProviderKey = key;
|
||||
|
||||
var cb = asyncLogGroup('Installing PAC...', cb);
|
||||
|
||||
chrome.alarms.create(
|
||||
this._periodicUpdateAlarmReason,
|
||||
{ periodInMinutes: 4*60 }
|
||||
);
|
||||
|
||||
this.setAlarms();
|
||||
|
||||
return this.syncWithPacProvider(cb);
|
||||
|
||||
|
@ -167,6 +171,8 @@ window.antiCensorRu = {
|
|||
chrome.storage.local.get(null, oldStorage => {
|
||||
|
||||
console.log('Init on storage:', oldStorage);
|
||||
|
||||
antiCensorRu.ifFirstInstall = Object.keys(oldStorage).length === 0;
|
||||
|
||||
// Finish each init with this callback setting alarm listeners.
|
||||
function cb(err) {
|
||||
|
@ -183,17 +189,19 @@ chrome.storage.local.get(null, oldStorage => {
|
|||
chrome.alarms.get(
|
||||
antiCensorRu._periodicUpdateAlarmReason,
|
||||
alarm => {
|
||||
if (!alarm)
|
||||
return console.error('ALARM NOT SET');
|
||||
console.log(
|
||||
'Next update is scheduled on', new Date(alarm.scheduledTime).toLocaleString('ru-RU')
|
||||
);
|
||||
if (alarm)
|
||||
console.log(
|
||||
'Next update is scheduled on', new Date(alarm.scheduledTime).toLocaleString('ru-RU')
|
||||
);
|
||||
else if (!antiCensorRu.ifFirstInstall && antiCensorRu.pacProvider) {
|
||||
antiCensorRu.setAlarms();
|
||||
console.error('KNOWN BUG: Alarms were lost. See issues on GitHub. Don\'t worry, next update was rescheduled.');
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// INSTALL
|
||||
antiCensorRu.ifFirstInstall = Object.keys(oldStorage).length === 0;
|
||||
if (antiCensorRu.ifFirstInstall) {
|
||||
console.log('Installing...');
|
||||
return chrome.runtime.openOptionsPage(cb);
|
||||
|
@ -208,7 +216,7 @@ chrome.storage.local.get(null, oldStorage => {
|
|||
|
||||
// LAUNCH, RELOAD, UPDATE
|
||||
|
||||
antiCensorRu._currentPacProviderKey = oldStorage._currentPacProviderKey || antiCensorRu._currentPacProviderKey;
|
||||
antiCensorRu._currentPacProviderKey = oldStorage._currentPacProviderKey;
|
||||
antiCensorRu.lastPacUpdateStamp = oldStorage.lastPacUpdateStamp || antiCensorRu.lastPacUpdateStamp;
|
||||
|
||||
if (antiCensorRu.version === oldStorage.version) {
|
||||
|
@ -216,16 +224,17 @@ chrome.storage.local.get(null, oldStorage => {
|
|||
console.log('Launch or reload. Do nothing.');
|
||||
return cb();
|
||||
}
|
||||
|
||||
|
||||
// UPDATE & MIGRATION
|
||||
console.log('Updating...');
|
||||
return updatePacProxyIps(
|
||||
antiCensorRu.pacProvider,
|
||||
ipsError => {
|
||||
if (ipsError) ipsError.ifNotCritical = true;
|
||||
antiCensorRu.pushToStorage( pushError => cb( pushError || ipsError ) );
|
||||
}
|
||||
);
|
||||
return antiCensorRu.pacProvider &&
|
||||
updatePacProxyIps(
|
||||
antiCensorRu.pacProvider,
|
||||
ipsError => {
|
||||
if (ipsError) ipsError.ifNotCritical = true;
|
||||
antiCensorRu.pushToStorage( pushError => cb( pushError || ipsError ) );
|
||||
}
|
||||
);
|
||||
|
||||
/*
|
||||
|
||||
|
@ -281,10 +290,6 @@ function httpGet(url, cb) {
|
|||
}
|
||||
|
||||
function updatePacProxyIps(provider, cb) {
|
||||
if (!provider.proxyHosts) {
|
||||
console.log(provider+' has no proxies defined.');
|
||||
return cb(null, null);
|
||||
}
|
||||
var cb = asyncLogGroup('Getting IP for '+ provider.proxyHosts.join(', ') +'...', cb);
|
||||
var failure = {
|
||||
clarification: {message:'Не удалось получить один или несколько IP адресов для прокси-серверов. Иконка для уведомления об обходе блокировок может не отображаться.'},
|
||||
|
|
Loading…
Reference in New Issue
Block a user