mirror of
https://github.com/anticensority/runet-censorship-bypass.git
synced 2026-02-20 22:20:36 +03:00
Compare commits
13 Commits
0.0.1.63
...
developmen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d86cf384af | ||
|
|
e1c95a3ece | ||
|
|
edabf14dd5 | ||
|
|
2f5d425f34 | ||
|
|
1c38137200 | ||
|
|
99b68ec8d0 | ||
|
|
0cc47d43a9 | ||
|
|
a583e5ecb3 | ||
|
|
884b4f0fbc | ||
|
|
770c4ab47d | ||
|
|
c5d9ca3254 | ||
|
|
27ad6944e0 | ||
|
|
a589568bf9 |
16
README.md
16
README.md
|
|
@ -21,25 +21,25 @@ This extension uses pac scripts, one of which (anticensority) is generated by th
|
|||
2. [Chrome Web Store (MINI)](https://chrome.google.com/webstore/detail/обход-блокировок-рунета-м/gnknjnebjldmkpmlhjipalimhjofpgho)
|
||||
3. [Microsoft Edge Add-ons](https://microsoftedge.microsoft.com/addons/detail/обход-блокировок-рунета/ajgpnodjpffiagcfmifildjpoaeiobfh)
|
||||
4. [Microsoft Edge Add-ons (MINI)](https://microsoftedge.microsoft.com/addons/detail/обход-блокировок-рунета-м/cjppllmpmkpjfchbaoebeneghcbmlibj)
|
||||
5. [FireFox Add-ons (Beta)](https://addons.mozilla.org/ru/firefox/addon/обход-блокировок-рунета/)
|
||||
5. [FireFox Add-ons](https://addons.mozilla.org/ru/firefox/addon/обход-блокировок-рунета/).
|
||||
6. Opera: сначала [установщик расширений из WebStore](https://addons.opera.com/ru/extensions/details/install-chrome-extensions/) (от команды Opera), затем см. пункты 1 и 2 выше.
|
||||
7. Пакеты для автономной (offline) установки: https://github.com/anticensority/runet-censorship-bypass/releases.
|
||||
7. Пакеты для автономной (offline) установки / Packages for offline installation: https://github.com/anticensority/runet-censorship-bypass/releases.
|
||||
|
||||
Из-за блокировок адресов Google расширение может не устанавливаться из WebStore. Подробности и способы установки см. https://github.com/anticensority/runet-censorship-bypass/wiki/Автономная-установка-расширения.
|
||||
|
||||
## Why I do This
|
||||
|
||||
See [my arguments against censorship (ru)](https://github.com/anticensority/runet-censorship-bypass/wiki/Почему-мы-это-делаем%3F-Аргументы-против-цензуры)
|
||||
See [my arguments against censorship (ru)](https://github.com/anticensority/runet-censorship-bypass/wiki/Почему-мы-это-делаем%3F-Аргументы-против-цензуры).
|
||||
|
||||
Looking at how Russian government [distorts TV](https://therussianreader.wordpress.com/2015/11/22/russian-truckers-strike-dagestan/) and blocks [critics of Putin](https://www.reuters.com/article/us-russia-internet-idUSBREA2C21L20140313),
|
||||
I decided to write an anticensorship extension for Chromium before they strike me first.
|
||||
I decided to write an anti-censorship extension for Chromium before they strike me first.
|
||||
|
||||
## How it Works
|
||||
|
||||
0. PAC script is a JavaScript file, triggered on every URL request, which says browser which proxy to use if any for this particular URL.
|
||||
1. The Chrome Extension sets PAC script in browser settings and keeps it synced with PAC script on the server (offering Antizapret (hosted on a dedicated server) or Anticensority (hosted on GitHub)).
|
||||
2. On every request PAC script checks if host is blocked or if its IP is blocked.
|
||||
3. If address is blocked PAC script returns proxy server to the browser. Antizapret PAC-script uses its own proxy servers and Anticensority PAC-script uses local Tor.
|
||||
0. PAC script is a JavaScript file, triggered on every URL request, which tells the browser which proxy to use if any for this particular URL.
|
||||
1. The Chrome Extension sets the PAC-script in browser settings and keeps it synced with the PAC script on the server. It offers Antizapret (hosted on a dedicated server) or Anticensority (hosted on GitHub) built-in PAC scripts for the user choice.
|
||||
2. On every request the PAC script checks if the host is blocked or if its IP is blocked.
|
||||
3. If an address is blocked, the PAC script returns the proxy server to the browser. The Antizapret PAC script uses its own proxy servers and the Anticensority PAC-script uses local Tor.
|
||||
4. PAC scripts on servers are updated periodically from https://github.com/zapret-info/z-i.
|
||||
|
||||
## Contributors
|
||||
|
|
|
|||
|
|
@ -280,9 +280,20 @@ console.log('Extension started.');
|
|||
|
||||
const compareVersions = (a, b) => versionToInt(a) - versionToInt(b);
|
||||
|
||||
const ifFirefox = navigator.userAgent.toLowerCase().includes('firefox');
|
||||
|
||||
let give;
|
||||
const promise = !ifFirefox ? Promise.resolve() : new Promise((resolve) => {
|
||||
give = resolve;
|
||||
});
|
||||
|
||||
window.apis = {
|
||||
consent: {
|
||||
promise,
|
||||
give,
|
||||
},
|
||||
platform: {
|
||||
ifFirefox: navigator.userAgent.toLowerCase().includes('firefox'),
|
||||
ifFirefox,
|
||||
},
|
||||
version: {
|
||||
ifMini: false,
|
||||
|
|
|
|||
|
|
@ -579,6 +579,14 @@
|
|||
|
||||
// ON EACH LAUNCH, STARTUP, RELOAD, UPDATE, ENABLE
|
||||
(async () => {
|
||||
let ifConsentGiven = await window.utils.promisedLocalStorage.get('ifConsentGiven');
|
||||
if (!ifConsentGiven) {
|
||||
window.utils.openAndFocus('/pages/consent/index.html');
|
||||
await window.apis.consent.promise;
|
||||
ifConsentGiven = true
|
||||
await window.utils.promisedLocalStorage.set({ ifConsentGiven });
|
||||
}
|
||||
|
||||
let oldAntiCensorRu = await window.utils.promisedLocalStorage.get('antiCensorRu') || {};
|
||||
|
||||
const otherKeys = [
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
order: 0,
|
||||
},
|
||||
|
||||
hostTracker: {
|
||||
googleCache: {
|
||||
title: 'Из кэша Google',
|
||||
getUrl: (blockedUrl) => 'http://webcache.googleusercontent.com/search?q=cache:' + blockedUrl,
|
||||
order: 1,
|
||||
|
|
|
|||
|
|
@ -2,8 +2,10 @@
|
|||
|
||||
## 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.
|
||||
* You need a globally installed `gulp-cli@3.0.0`.
|
||||
See https://gulpjs.com/docs/en/getting-started/quick-start#install-the-gulp-command-line-utility.
|
||||
* Node v21.7.3
|
||||
* NPM 10.5.0
|
||||
|
||||
## Steps
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,108 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="icon" type="image/x-icon" href="./ribbon-128.ico">
|
||||
<meta charset="utf-8">
|
||||
<title>Согласие на сбор данных / Data Collection Consent</title>
|
||||
<style>
|
||||
p, ol { font-size: 16px }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin: 0 auto; max-width: 35rem; text-align: justify; font-family: sans-serif">
|
||||
<img src="./ribbon-128.png">
|
||||
<h1>Согласие на сбор данных / Data Collection Consent</h1>
|
||||
<p>
|
||||
Этот документ написан на двух языках. Английский предпочтительней.
|
||||
</p>
|
||||
<p>
|
||||
This document is written in two languages. English is preferable.
|
||||
</p>
|
||||
<p>
|
||||
Привет! На связи команда разработчиков браузерного расширения «Обход блокировок Рунета».
|
||||
Вы либо только что установили расширение, либо только что обновились до новой версии.
|
||||
По новым правилам мы <a href="https://github.com/anticensority/runet-censorship-bypass/wiki/Зачем-нам-согласие-со-сбором-данных%3F">должны</a>
|
||||
получить от вас согласие на сбор ваших данных и передачу их
|
||||
третьим лицам.
|
||||
</p>
|
||||
<p>
|
||||
Hi! It's "Runet Censorship Bypass" browser extension developers team.
|
||||
You have just installed the extension or just updated to a new version.
|
||||
According to the new requirements we <a href="https://github.com/anticensority/runet-censorship-bypass/wiki/Зачем-нам-согласие-со-сбором-данных%3F">have to</a> get your consent before collecting your data and
|
||||
sharing it with 3rd parties.
|
||||
</p>
|
||||
<p>
|
||||
Сообщаем вам, что после первого запуска расширения и при дальнейшем его использовании
|
||||
настроенные в нём PAC-скрипты и прокси-сервера могут собирать или уже* собирают
|
||||
некоторые ваши данные. Какие именно, зависит от выбранного вами поставщика этих ресурсов,
|
||||
так что рекомендуем ознакомиться с их соответствующей политикой конфиденциальности (Privacy
|
||||
Policy).
|
||||
<br>
|
||||
* Если вы установили и пользовалсись расширением уже некоторое время. Этого экрана согласия не
|
||||
было в старых версиях.
|
||||
</p>
|
||||
<p>
|
||||
We inform you that starting from the first launch of the extension and on further usage chosen
|
||||
PAC-scripts and proxy-servers may collect or are already* collecting some of your data. Which
|
||||
exactly depends on the chosen provider of these resources so we recommend you to get
|
||||
acquainted with their corresponding Privacy Policy.
|
||||
<br>
|
||||
* If you have installed and have been using the extension for some time already. This consent
|
||||
screen wasn't shown in the old versions.
|
||||
</p>
|
||||
<p>
|
||||
При первом запуске и по умолчанию будут использоваться PAC-скрипт и встроенные в него
|
||||
прокси-сервера, предоставляемые <a href="https://antizapret.prostovpn.org:8443">проектом
|
||||
"АнтиЗапрет"</a>, — политику конфиденциальности этого решения см. в
|
||||
<a href="https://antizapret.prostovpn.org:8443/faq.html">FAQ</a> под заголовком "Какие данные
|
||||
собирает сервис и каким образом они используются?".
|
||||
</p>
|
||||
<p>
|
||||
On the first launch and by default the PAC-script and its built-in proxy-servers provided by
|
||||
<a href="https://antizapret.prostovpn.org:8443">project "AntiZapret" (RU)</a> will be used, —
|
||||
see its Privacy Policy in
|
||||
<a href="https://antizapret.prostovpn.org:8443/faq.html">the FAQ (RU)</a> under the title
|
||||
"Какие данные собирает сервис и каким образом они используются?". Its translation to EN is
|
||||
present in the Privacy Policy of the extension.
|
||||
</p>
|
||||
<p>
|
||||
Политику конфиденциальности самого расширения см.
|
||||
<a
|
||||
href="https://github.com/anticensority/runet-censorship-bypass/wiki/Privacy-Policy-|-Политика-конфиденциальности"
|
||||
>здесь (EN)</a>.
|
||||
</p>
|
||||
<p>
|
||||
See the Privacy Policy of this extension
|
||||
<a
|
||||
href="https://github.com/anticensority/runet-censorship-bypass/wiki/Privacy-Policy-|-Политика-конфиденциальности"
|
||||
>here</a>.
|
||||
</p>
|
||||
<p>
|
||||
В расширении представлены кнопки / There are these buttons in the extension:
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
"Через Google Translate" / "Via Google Translate"
|
||||
</li><li>
|
||||
"Из кэша Google" / "From Google Cache"
|
||||
</li><li>
|
||||
"Из архива archive.org" / "From archive.org archive"
|
||||
</li><li>
|
||||
"Разблокировать по-другому" / "Unblock another way"
|
||||
</li><li>
|
||||
"Сайт в реестре блокировок?" / "Is site in the registry of blockings?"
|
||||
</li>
|
||||
</ol>
|
||||
<p>
|
||||
Все эти кнопки передают URL-адрес текущей вкладки в соответствующие службы. /
|
||||
All these buttons share URL-address of the current tab with corresponding services.
|
||||
</p>
|
||||
<button id="agreeBtn">Разрешаю собирать заявленные данные / Allow claimed data collection
|
||||
</button>
|
||||
<button id="rejectBtn">Нет, удалите расширение / No, delete this extension
|
||||
</button>
|
||||
</div>
|
||||
<script src="./index.js"></script>
|
||||
<script src="../lib/keep-links-clickable.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
'use strict';
|
||||
|
||||
chrome.runtime.getBackgroundPage( (backgroundPage) =>
|
||||
backgroundPage.apis.errorHandlers.installListenersOn(
|
||||
window, 'CONSENT', () => {
|
||||
agreeBtn.onclick = () => {
|
||||
backgroundPage.apis.consent.give();
|
||||
window.close();
|
||||
}
|
||||
rejectBtn.onclick = () =>
|
||||
chrome.management.uninstallSelf();
|
||||
},
|
||||
),
|
||||
);
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 66 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
|
|
@ -8,7 +8,7 @@ const pacUrls = [
|
|||
];
|
||||
|
||||
const commonContext = {
|
||||
version: '1.63',
|
||||
version: '1.66',
|
||||
anticensorityPacUrls: [
|
||||
...pacUrls,
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user