/ adblockpluschrome

Этот репозиторий содержит исходный код Adblock Plus для конкретной платформы для Chrome, Opera, Microsoft Edge и Firefox. Его можно использовать для создания Adblock Plus для этих платформ.

Строительство

Требования

  • Node.js (> = 12.17.0)

Создание в Windows

В 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 манифест. 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  

Чтобы запустить другие подмножества тестов, пожалуйста, проверьте параметр -g в документации Mocha.

По умолчанию он загружает (и кэширует) и запускает тесты для самой старой совместимой версии и последней версии каждого браузера .Чтобы запустить тесты для другой версии, установите переменные среды CHROMIUM_BINARY , FIREFOX_BINARY или EDGE_BINARY . Возможны следующие значения:

  • installed
    • Использует версию, установленную в системе.
  • path:
    • Использует двоичный файл, расположенный по заданному пути.
  • download:
    • Загружает указанную версию (для Firefox версия должна быть в виде . , для Chromium это должен быть номер версии). Этот параметр недоступен для Edge.

Подмножество тестов фильтрации использует тестовые страницы ABP. Чтобы запускать эти тесты на другой версии тестовых страниц, установите переменную среды TEST_PAGES_URL . Кроме того, чтобы принимать небезопасные сертификаты https , установите для переменной среды TEST_PAGES_INSECURE значение "true" .

Edge Chromium необходимо установить перед запуском тестов Edge.

Linting

Вы можете линтировать код с помощью ESLint.

Сначала вам нужно будет настроить. Это установит нашу конфигурациюeslint-config-eyeo и все необходимое после запуска:

  npm install  

Затем вы можете запустить lint код:

  npm run lint  

Оцените статью
Botgadget.ru
Добавить комментарий