' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'' +'')//-->
…Как понимаю, вы уже прочитали общий обзор и хотите поглубже разобраться что и как в этом аддоне…)
Всё верно, работа с расширением Cloudless требует знания некоторых особенностей блокировки сетевых запросов, это позволит вам избежать "непонятных" проблем при эксплуатации аддона.
В этой статье:
По отношению к исходному аддону и его авторской хром‑версии имеются следующие отличительные особенности:
Ниже приведены некоторые технические подробности по исходному коду и отдельным функциям расширения.
Код использует только чистый JS (ES5), все неподдерживаемые в "старых" браузерах функции заменены на аналоги.
Все скрипты работают в "строгом" режиме – для гарантированного выполнения функций и облегчения отлова ошибок.
Всё управление работой расширения осуществляется через попап‑окно, вызываемое по щелчку на иконке на тулбаре. Интерфейс окна прост и интуитивно понятен, для всех "кликабельных" элементов добавлены тултипы (подсказки):
Страница настроек всех опций и функций, включая управление блокировкой отдельных облачных провайдеров, является частью этого же попапа, отдельной страницы опций нет (в манифесте также отсутствует).
Все настройки автономны и сохраняются только в локальном хранилище самого аддона, синхронизации нет. Запрос отдельного разрешения на работу с хранилищем в манифесте при этом не требуется.
Для отрисовки интерфейса попапа и страницы настроек не используются никакие сторонние JS/CSS библиотеки, весь интерфейс работает на чистом HTML с минимально необходимым набором стилей и скриптов.
Для вызова попапа применяется стандартный API chrome.browserAction.
Расширение имеет невыгружаемый фоновый процесс (скрипт cloudless.js) – это обусловлено самим принципом работы основного API, используемого в аддоне – chrome.webRequest и его "блокирующей" части webRequestBlocking. Этот API отвечает непосредственно за проверку http‑запросов и их блокировку в соответствии с настройками фильтрации.
Для работы с веб-страницами в фоновых вкладках задействуется API chrome.tabs. Также применяется разрешение activeTab, упрощающее отдельные действия на текущих страницах.
Для обеспечения корректной работы аддона с любыми веб‑сайтами в манифесте запрашиваются разрешения [ "http://*/*", "https://*/*" ]. С локальными и служебными страницами Cloudless напрямую не работает – если они НЕ отправляют запросов на "шпионские" ресурсы.)
Детектор следящих элементов срабатывает на любых сайтах по наличию заданных совпадений в заголовках запросов. Отлавливаются все следящие элементы для сервисов Cloudflare, Google Project Shield, Incapsula/Imperva и Sucuri.
Следует помнить, что для доменов из списка исключений любые запросы пропускаются без блокировки.
Если какой‑либо запрос и/или сервис были ограничены другим блокировщиком – детект "шпиёна" может не сработать.
Детект также не сработает* и в самом "шпионском гнезде" – на сайтах MITM-сервисов запросы не обрабатываются.
* Это сделано чисто для упрощения кода и снижение общей нагрузки при обработке "запретного" – нужно понимать, что в "доме большого брата" за юзером всегда "присматривают".)
Для уточнения конкретных "крамольных" элементов страниц можно использовать консольный лог (отметив "галку" в Настройках, по умолчанию включен). В лог выводится название MITM-сервиса и URL ресурса, непосредственно содержащего инструмент слежения.
Практических ограничений по версии браузера не имеется, используемые API работают в версиях 29+.
Язык интерфейса, сообщений, подсказок и описания – только русский (жёстко зашит в коде).
Исходный код НЕ обфусцирован, исключительно с целью удобства при возможных доработках. Кому это критично – удалите комментарии и пропустите через компрессоры..х))