Эта кодовая база устарела. Начиная с Adblock Plus 3.11, Adblock Plus для Chrome, Firefox, Microsoft Edge и Opera основан на репозитории adblockplusui.
Разработка базовой интеграции блокировки рекламы для веб-расширений перенесена в репозиторий webext-sdk.
Этот репозиторий содержит исходный код Adblock Plus для конкретной платформы для Chrome, Opera, Microsoft Edge и Firefox. Его можно использовать для создания Adblock Plus для этих платформ.
В Windows вам понадобится среда Linux, работающая на WSL. Затем установите вышеуказанные требования и запустите приведенные ниже команды из Bash.
Клонируйте внешние репозитории:
git submodule update --init --recursive
Примечание: при сборке из исходного архива этот шаг необходимо пропустить.
Установите необходимые пакеты npm:
npm install
Повторно запустите приведенные выше команды, если зависимости могли измениться, например, после проверки новой версии.
Выполните следующую команду в каталоге проекта:
npx gulp build -t {chrome|firefox} [-c development]
Это создаст сборку с именем в форме adblockpluschrome-nnnzip или adblockplusfirefox-nnnxpi . Эти сборки не подписаны. Их можно отправить в магазины расширений как есть или загрузить в распакованном виде в режиме разработки для тестирования (так же, как сборки devenv ниже).
Чтобы упростить процесс тестирования изменений, вы можете создать распакованную среду разработки. Для этого выполните одну из следующих команд:
npx gulp devenv -t {chrome|firefox}
Это создаст каталог devenv.* в каталоге проекта. Вы можете загрузить каталог как распакованное расширение в разделе chrome://extensions в браузерах на базе Chromium и в разделе about:debugging в Firefox. После внесения изменений в исходный код повторно запустите команду для обновления среды разработки, и расширение должно автоматически перезагрузиться через несколько секунд.
Если вы хотите создать расширение на основе нашего кода и использовать те же инструменты сборки, мы предлагаем некоторые варианты настройки.
Это можно сделать следующим образом:
Указание пути к новому файлу конфигурации относительно gulpfile.mjs
(он должен соответствовать структуре, найденной в build/config/
).
npx gulp {build|devenv} -t {chrome|firefox} --config config.mjs
Указание пути к новому файлу manifest.json
относительно gulpfile.mjs
. Вам следует проверить build/manifest.json
и build/tasks/manifest.mjs
чтобы увидеть, как мы его модифицируем.
npx gulp {build|devenv} -t {chrome|firefox} -m manifest.json
Чтобы проверить ваши изменения, вы можете использовать набор модульных тестов, расположенный в каталоге qunit репозитория. Чтобы запустить модульные тесты, перейдите на страницу параметров расширения, откройте консоль JavaScript и введите:
location.href = "qunit/index.html";
Модульные тесты запускаются автоматически после загрузки страницы.
Существует также внешний инструмент запуска тестов, который можно вызвать из командной строки, чтобы запускать модульные тесты вместе с некоторыми интеграционными тестами в разных браузерах, а также автоматически запускать линтер.
В Windows, чтобы использовать средство запуска тестов, помимо настройки среды Linux, как описано выше, вам необходимо установить Node.js в вашей родной среде Windows. Затем запустите приведенные ниже команды из PowerShell или cmd.exe (в отличие от создания расширения, которое необходимо выполнить из Bash).
В Linux более новые версии Chromium требуют libgbm
.
Убедитесь, что необходимые пакеты установлены и обновлены:
npm install
Запустите процесс тестирования для всех браузеров:
npm test
Запускайте процесс тестирования только в одном браузере:
npm test -- -g <Firefox|Chromium|Edge>
Чтобы запустить другие подмножества тестов, проверьте опцию -g
в документации Mocha.
По умолчанию он загружает (и кэширует) и запускает тесты для самой старой совместимой версии и последней версии каждого браузера. Чтобы запустить тесты для другой версии, установите переменные среды CHROMIUM_BINARY
, FIREFOX_BINARY
или EDGE_BINARY
. Принимаются следующие значения:
installed
path:<path>
download:<version>
<major>.<minor>
, для Chromium это должен быть номер версии). Эта опция недоступна для Edge. Подмножество тестов фильтров использует страницы тестов ABP. Чтобы запустить эти тесты на другой версии тестовых страниц, установите переменную среды TEST_PAGES_URL . Кроме того, чтобы принимать небезопасные сертификаты https
, установите для переменной среды TEST_PAGES_INSECURE значение "true"
.
Перед запуском тестов Edge необходимо установить Edge Chromium.
Вы можете проверить код с помощью ESLint.
Сначала вам нужно будет настроить. Это установит нашу конфигурацию eslint-config-eyeo и все необходимое после запуска:
npm install
Затем вы можете запустить анализ кода:
npm run lint