Cette base de code est obsolète. Depuis Adblock Plus 3.11, Adblock Plus pour Chrome, Firefox, Microsoft Edge et Opera est basé sur le référentiel adblockplusui.
Le développement de l'intégration principale du blocage des publicités pour les extensions Web a été déplacé vers le référentiel webext-sdk.
Ce référentiel contient le code source Adblock Plus spécifique à la plate-forme pour Chrome, Opera, Microsoft Edge et Firefox. Il peut être utilisé pour créer Adblock Plus pour ces plates-formes.
Sous Windows, vous avez besoin d'un environnement Linux exécuté sur WSL. Installez ensuite les exigences ci-dessus et exécutez les commandes ci-dessous depuis Bash.
Clonez les dépôts externes :
git submodule update --init --recursive
Remarque : lors de la création à partir d'une archive source, cette étape doit être ignorée.
Installez les packages npm requis :
npm install
Réexécutez les commandes ci-dessus lorsque les dépendances ont pu changer, par exemple après avoir extrait une nouvelle révision.
Exécutez la commande suivante dans le répertoire du projet :
npx gulp build -t {chrome|firefox} [-c development]
Cela créera une version avec un nom sous la forme adblockpluschrome-nnnzip ou adblockplusfirefox-nnnxpi . Ces versions ne sont pas signées. Ils peuvent être soumis tels quels aux magasins d'extensions, ou s'ils sont décompressés, chargés en mode développement pour les tests (comme pour les versions devenv ci-dessous).
Pour simplifier le processus de test de vos modifications, vous pouvez créer un environnement de développement décompressé. Pour cela, exécutez l'une des commandes suivantes :
npx gulp devenv -t {chrome|firefox}
Cela créera un répertoire devenv.* dans le répertoire du projet. Vous pouvez charger le répertoire en tant qu'extension décompressée sous chrome://extensions dans les navigateurs basés sur Chromium et sous about:debugging dans Firefox. Après avoir modifié le code source, réexécutez la commande pour mettre à jour l'environnement de développement, et l'extension devrait se recharger automatiquement après quelques secondes.
Si vous souhaitez créer une extension basée sur notre code et utiliser les mêmes outils de build, nous proposons quelques options de personnalisation.
Cela peut être fait par :
Spécifier un chemin vers un nouveau fichier de configuration relatif à gulpfile.mjs
(il doit correspondre à la structure trouvée dans build/config/
).
npx gulp {build|devenv} -t {chrome|firefox} --config config.mjs
Spécifier un chemin d'accès à un nouveau fichier manifest.json
par rapport à gulpfile.mjs
. Vous devriez vérifier build/manifest.json
et build/tasks/manifest.mjs
pour voir comment nous le modifions.
npx gulp {build|devenv} -t {chrome|firefox} -m manifest.json
Pour vérifier vos modifications, vous pouvez utiliser la suite de tests unitaires située dans le répertoire qunit du référentiel. Pour exécuter les tests unitaires, accédez à la page Options de l'extension, ouvrez la console JavaScript et saisissez :
location.href = "qunit/index.html";
Les tests unitaires s’exécuteront automatiquement une fois la page chargée.
Il existe également un exécuteur de tests externe qui peut être invoqué à partir de la ligne de commande afin d'exécuter les tests unitaires ainsi que certains tests d'intégration sur différents navigateurs, et d'exécuter également automatiquement le linter.
Sous Windows, pour utiliser le programme d'exécution de tests, en plus de configurer un environnement Linux comme indiqué ci-dessus, vous devez avoir installé Node.js dans votre environnement Windows natif. Exécutez ensuite les commandes ci-dessous depuis PowerShell ou cmd.exe (contrairement à la création de l'extension qui doit être effectuée à partir de Bash).
Sous Linux, les versions plus récentes de Chromium nécessitent libgbm
.
Assurez-vous que les packages requis sont installés et à jour :
npm install
Démarrez le processus de test pour tous les navigateurs :
npm test
Démarrez le processus de test dans un seul navigateur :
npm test -- -g <Firefox|Chromium|Edge>
Afin d'exécuter d'autres sous-ensembles de tests, veuillez cocher l'option -g
dans la documentation de Mocha.
Par défaut, il télécharge (et met en cache) et exécute les tests sur la version compatible la plus ancienne et la dernière version de chaque navigateur. Afin d'exécuter les tests sur une version différente, définissez les variables d'environnement CHROMIUM_BINARY
, FIREFOX_BINARY
ou EDGE_BINARY
. Les valeurs suivantes sont acceptées :
installed
path:<path>
download:<version>
<major>.<minor>
, pour Chromium, ce doit être le numéro de révision). Cette option n'est pas disponible pour Edge. Le sous-ensemble de tests de filtrage utilise les pages de test ABP. Afin d'exécuter ces tests sur une version différente des pages de test, définissez la variable d'environnement TEST_PAGES_URL . De plus, afin d'accepter les certificats https
non sécurisés, définissez la variable d'environnement TEST_PAGES_INSECURE sur "true"
.
Edge Chromium doit être installé avant d'exécuter les tests Edge.
Vous pouvez lint le code en utilisant ESLint.
Vous devrez d'abord procéder à la configuration. Cela installera notre configuration eslint-config-eyeo et tout le nécessaire après avoir exécuté :
npm install
Ensuite, vous pouvez exécuter pour lint le code :
npm run lint