Image

Listens: Red Hot Chili Peppers — [By The Way #07] Can't Stop

Category:

Как настраивать Chrome

Браузер


Согласно StatCounter, примерно 70% интернета пользуется браузером Chrome. Он разработан американской корпорацией Google, которая зарабатывает, собирая и используя данные, которыми вы бы не хотели с ней делиться. Chrome это качественный и популярный браузер, потому что основывается на проекте Chromium, браузера с открытым исходным кодом. Корпорация Google добавляет в этот продукт модули, фактически отправляющие всю веб-активность пользователя (посещенные сайты, скачанные файлы, набранный текст, поисковые запросы, когда пользователь открывает и закрывает Chrome, что еще стоит на его машине) в его досье, используемое для нужд информационной войны и иногда для впаривания ненужных товаров. Для минимального подобия приличий заявляется, что эта функциональность помогает пользователю.

К счастью, несколько групп специалистов по безопасности, разработчики альтернативных браузеров на базе Chromium, майнтайнеры Debian, собрались и сделали патчи под заголовком ungoogled-chromium, которые отключают шпионскую активность, встроенную в Chromium. Используя исходный код Chromium и эти патчи, можно собрать Chromium, который вообще не обращается к серверам Google, если пользователь его явно не попросит.

Чтобы избежать повсеместного использования свободного браузера Chromium вместо своего шпионского Google Chrome, Google собирает дефолтный релиз Chromium с флагами, исключающими из браузера, например, поддержку видео. Проект ungoogled-chromium-windows исправляет в том числе и это.

Здесь я расскажу, коротко и по-русски, как собрать свой Chromium, не обладая знаниями программирования.


1. Эта инструкция для Windows 7 x64 или более новой

2. Установите бесплатную Visual Studio 2019 Community. Среди устанавливаемых компонентов должны быть Desktop development with C++ и подкомпонент MFC/ATL support; Windows 10 SDK 10.0.18362 или выше; Windows 10 SDK Debugging Tools

3. Установите Python 2.7 и Python 3.6+. 2.7 используется сборкой Chromium, 3-й скриптами ungoogled-chromium-windows.

4. Команда python --version должна соответствовать 2.7, py --version 3-й версии

5. Установите пакет pypiwin32 командой pip install pypiwin32

6. Установите git

7. Установите 7-zip

8. Откройте из меню Пуск Visual Studio 2019\Visual Studio Tools\Developer Command Prompt for VS 2019 с правами администратора, кликнув на нем правой кнопкой мыши и выбрав Run as administrator.

9. Исполните в этой консоли команду
git clone --recurse-submodules https://github.com/ungoogled-software/ungoogled-chromium-windows.git
Она создаст в текущей папке новую папку ungoogled-chromium-windows и скачает туда репозиторий с патчами к Chromium и скрипт, который сделает основную работу по сборке.

10. Перейдите внутрь созданной папки командой cd ungoogled-chromium-windows

11. Запустите основной скрипт командой
py build.py
Скрипт выполняет следующие шаги:

  • проверяет, установлены ли все нужные программы

  • качает дополнительные программы (перечислены в файле downloads.ini), нужные для сборки Chromium (это clang, gperf, bison, ninja) и сами исходники Chromium текущей релизной версии.

  • проверяет хэши скачанных файлов

  • распаковывает скачанные архивы архиватором 7-zip

  • удаляет из опубликованных Google исходников релиза Chromium лишние бинарные (и, возможно, вредоносные) файлы

  • применяет патчи, удаляющие шпионские модули

  • меняет в исходном коде URL серверов Google на несуществующие URL вида support.9oo91e.qjz9zk на всякий случай, во избежание случайно просочившихся запросов

  • создает файл ungoogled-chromium-windows/ungoogled-chromium/src/out/Default/args.gn, управляющий конфигурацией сборки

  • собирает программу gn, которая генерирует задания для программы сборки ninja

  • запускает программу gn

  • запускает программу ninja, которая и осуществляет самый длительный этап процесса — собственно сборку Chromium. На моем ноутбуке с SSD это занимает примерно 4 часа и около 20 ГБ места.


  • 12. В результате процесса сборки в папке ungoogled-chromium-windows/ungoogled-chromium/src/out/Release/ появляется много файлов и среди них mini_installer.exe. Его запуск приведет к установке Chromium в папку C:\Users\User\AppData\Local\Chromium\Application\ и данных пользователя в C:\Users\User\AppData\Local\Chromium\User Data\Default\. После этого всю папку ungoogled-chromium-windows можно удалить.

    Проект ungoogled-chromium-windows держится только на чистом энтузиазме его создателей, поэтому крайне сложный процесс сборки Chromium, который они модифицируют, не всегда происходит без сучковатостей. Я столкнулся с 4 проблемами, которые описаны, вместе с путями их решения, здесь: https://github.com/ungoogled-software/ungoogled-chromium-windows/issues/28


    Настройки


    Полученный Chromium готов к использованию из коробки и почти не нуждается в дополнительной настройке для сохранения приватности. Например куки сохраняются только до закрытия браузера. Исключения можно настроить по адресу chrome://settings/content/cookies, Разрешить → Добавить. Несмотря на то, что абсолютно каждый сайт и сервер в интернете пытается сохранить на ваш компьютер информацию для вашего опознавания и слежки за вашей активностью, в этот список почти некого добавлять. У меня это livejournal, codeforces и rutracker.

    Несколько настроек следует сделать на странице флагов chrome://flags/, скрытых настроек Chromium:
    #reduced-referrer-granularity=Enabled, чтобы браузер не слишком усердствовал, докладывая сайтам, с каких веб-страниц вы на них перешли
    #bypass-app-banner-engagement-checks=Enabled, чтобы браузер не слишком помогал информацией о вашей активности баннерным сетям
    #enable-lazy-image-loading=Disabled, чтобы браузер экономил ваше время, а не трафик сайтов
    #enable-lazy-frame-loading=Disabled, аналогично


    Расширения


    Компания Google не в восторге от способов сделать ее слежку чуть менее вездесущей и создает искусственные неудобства пользователям, в частности, не давая устанавливать в Chromium расширения одним кликом, как в Google Chrome. Однако их все еще можно установить вручную:

    1. Скопируйте 32-буквенную часть URL с сайта https://chrome.google.com/webstore/ у страницы с интересующим расширением

    2. Замените в строке
    https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[VERSION]&acceptformat=crx3&x=id%3D[EXTENSION_ID]%26installsource%3Dondemand%26uc
    [VERSION] на ваш номер версии Chromium, например, 79.0
    [EXTENSION_ID] на 32-буквенный идентификатор расширения
    UPD 2022-10-30: URL заменен на актуальный

    3. Скачайте c этого URL файл *.crx, и распакуйте его (это просто ZIP) куда-нибудь

    4. На странице chrome://extensions/ включите Режим разработчика и используйте кнопку Загрузить распакованное расширение, чтобы указать путь к распакованному *.crx

    Одно расширение должно быть установлено абсолютно везде, это uBlock Origin (crx). Это примерно единственный этичный блокировщик рекламы. Он значительно уменьшает слежку, паразитизм рекламы на внимании пользователя, число и объем сетевых запросов, уменьшает затраты трафика и нагрузку на память и процессор. Довольно стандартная для интернетов главная страница рутора сокращается с 58 запросов на 999 КБ до 22 запросов на 384 КБ, то есть более чем в 2.5 раза.

    Другим полезным расширением является Empty New Tab Page (crx). Оно заменяет веб-страницу, появляющуюся при клике на кнопку New Tab, на пустую, не содержащую недавних и популярных сайтов. Это значительно экономит внимание и снижает траты время на незапланированные посещения сайтов, поедающих время (ввиду чего в основном они и попадают в список популярных).

    Третье расширение, которое я рекомендую, может в некоторых случаях значительно упростить взаимодействие с Веб — Tampermonkey (crx). Это расширение позволяет вставлять на произвольную веб-страницу, свой Javascript, хранящийся локально. Его можно использовать для устранения назойливого функционала некоторых сайтов или добавления недостающего, например, скачивания видео или настраиваемой сортировки больших списков.

    Корпорация Google с тщательностью, достойной лучшего применения, удаляет из Chrome Web Store расширения, предоставляющие доступ посредством open source библиотеки youtube_dl к скачиванию видеофайлов в один клик (не только Youtube, а почти 800 видеохостингов). Ее можно установить и использовать прямо из командной строки:

    pip install youtube_dl
    python -m youtube_dl --no-mtime https://www.youtube.com/watch?v=9bZkp7q19f0

    Если вы пропустили, Youtube теперь удаляет видео, хостинг которых считает нецелесообразным для бизнеса Google. Уникальный контент сам себя не забэкапит.


    Поиск


    Chromium позволяет задать chrome://settings/searchEngines дополнительные поисковики, которые можно использовать из адресной строки, набрав псевдоним поисковика и запрос после пробела. Я использую такие:

    Googleghttps://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&q=%s
    Google Translatetghttp://translate.google.com/?source=osdd#auto|auto|%s
    Kinopoiskkphttps://www.kinopoisk.ru/search/?query=%s
    Wikipedia (en)ewhttps://en.wikipedia.org/w/index.php?title=Special:Search&search=%s
    Wikipedia (ru)whttps://ru.wikipedia.org/w/index.php?title=Special:Search&search=%s

    В качестве дефолтного поисковика Ungoogled Chromium использует DuckDuckGo. Примерно 80% моих запросов — несложный поиск по «хорошим» кейвордам, с которым DuckDuckGo вполне справляется. Для оставшихся я просто пишу "g search phrase". Передаю привет экс-коллегам из Яндекса, которые безальтернативно показывают экзит-ноде репрессируемых граждан соседней страны капчу — вы сумели сменить мой дефолтный поисковик.


    Прокси


    Поскольку правительства всех стран резко увлеклись цензурой и банами, пользователям приходится прибегать к разнообразным прокси и VPN, восстанавливающим сетевой нейтралитет и связность. Наиболее независимый от успешности бизнес-моделей контор, которые покупают гигабайты запросов пользователей по цене порта на точке обмена трафиком, способ — Tor. Рекомендуется использовать его в Tor Browser, но тем, кому нехватка приватности не грозит немедленными серьезными последствиями, можно использовать прокси. Установите Tor Browser, добавьте программу tor в автозапуск. Она создает локальный SOCKS-прокси, обычно на порту 9050, который пускает трафик через сеть Tor.

    Есть способ использовать этот прокси только для заблокированных сайтов — скрипты Proxy Auto Configuration (PAC). Это обыкновенный Javascript файл, содержащий функцию FindProxyForURL, которая возвращает способ соединения с хостом, передаваемым как аргумент. Пример от крымчанина/киевлянина:

    function FindProxyForURL(url, host) {
        if (dnsDomainIs(host, ".onion")) {
            return "SOCKS5 127.0.0.1:9050";
        }

        //var place = "ru";
        var place = "ua";
       
        var ru_banned = "dou.ua code.google.com".split(" ");
        var ua_banned = "yandex.ru kinopoisk.ru vk.com".split(" ");
        var both_banned = "rutracker.org rutor.info".split(" ");
        var banned = both_banned.concat(place == "ru" ? ru_banned : ua_banned);
       
        for (var i = 0; i < banned.length; ++i) {
            if (dnsDomainIs(host, banned[i])) {
                return "SOCKS5 127.0.0.1:9050";
            }
        }
        return "DIRECT";
    }

    Чтобы использовать этот файл в любом браузере, использующем системные настройки прокси, настройте Control Panel → Internet Properties → Connections → LAN Settings → Use automatic configuration script = file://c:/path/proxy.pac

    Не работает? А до 78-й версии все отлично работало, пока гениальный программист из Google Matt Menke не решил удалить не нужную ему функциональность с мясом. Теперь файл придется закодировать BASE64 в Data URL вида
    data:application/x-ns-proxy-autoconfig;base64,ZnVuY3Rp...
    и использовать этот URL вместо file://c:/path/proxy.pac, меняя его при каждом редактировании списка блокировок. Корпорация Google думает о вас!

    Проверьте работоспособность PAC-скрипта, посетив сайт http://flibustahezeous3.onion, загнанный в Tor любителями жечь библиотеки (правообладателями).

    Достаточно глупо с целью обхода блокировок получать от сети Tor экзит-ноду, которая так же расположена в странах, блокировки которых вам нужно преодолеть. Для решения этой проблемы добавьте в файл Tor Browser\Tor\torrc строку
    ExcludeExitNodes {ru}, {ua}


    MHTML


    Поскольку Google лучше пользователей знает, что им нужно, единственный удобный способ сохранить веб-страницу с картинками и стилями в один файл MHTML отключили в 75-й версии. Включить обратно можно, добавив в командную строку запуска --save-page-as-mhtml. Добавьте эту опцию после chrome.exe в свойствах ярлыка, который используете чаще всего, в Shortcut → Target.


    Я использую описанную сборку Chromium с этими настройками в качестве основного браузера уже около месяца, полет нормальный.