Diese Codebasis ist veraltet. Ab Adblock Plus 3.11 basiert Adblock Plus für Chrome, Firefox, Microsoft Edge und Opera auf dem adblockplusui-Repository.
Die Entwicklung der Kern-Werbeblocker-Integration für Web-Erweiterungen wurde in das webext-sdk-Repository verschoben.
Dieses Repository enthält den plattformspezifischen Adblock Plus-Quellcode für Chrome, Opera, Microsoft Edge und Firefox. Es kann zum Erstellen von Adblock Plus für diese Plattformen verwendet werden.
Unter Windows benötigen Sie eine Linux-Umgebung, die auf WSL ausgeführt wird. Installieren Sie dann die oben genannten Anforderungen und führen Sie die folgenden Befehle in Bash aus.
Klonen Sie die externen Repositorys:
git submodule update --init --recursive
Hinweis: Beim Erstellen aus einem Quellarchiv muss dieser Schritt übersprungen werden.
Installieren Sie die erforderlichen npm-Pakete:
npm install
Führen Sie die oben genannten Befehle erneut aus, wenn sich die Abhängigkeiten möglicherweise geändert haben, z. B. nach dem Auschecken einer neuen Revision.
Führen Sie den folgenden Befehl im Projektverzeichnis aus:
npx gulp build -t {chrome|firefox} [-c development]
Dadurch wird ein Build mit einem Namen in der Form adblockpluschrome-nnnzip oder adblockplusfirefox-nnnxpi erstellt. Diese Builds sind nicht signiert. Sie können unverändert an die Erweiterungsspeicher übermittelt oder, wenn sie entpackt sind, im Entwicklungsmodus zum Testen geladen werden (wie die folgenden Devenv-Builds).
Um das Testen Ihrer Änderungen zu vereinfachen, können Sie eine entpackte Entwicklungsumgebung erstellen. Führen Sie dazu einen der folgenden Befehle aus:
npx gulp devenv -t {chrome|firefox}
Dadurch wird ein devenv.* -Verzeichnis im Projektverzeichnis erstellt. Sie können das Verzeichnis als entpackte Erweiterung unter chrome://extensions in Chromium-basierten Browsern und unter about:debugging in Firefox laden. Nachdem Sie Änderungen am Quellcode vorgenommen haben, führen Sie den Befehl erneut aus, um die Entwicklungsumgebung zu aktualisieren. Die Erweiterung sollte nach einigen Sekunden automatisch neu geladen werden.
Wenn Sie eine Erweiterung basierend auf unserem Code erstellen und dieselben Build-Tools verwenden möchten, bieten wir einige Anpassungsoptionen an.
Dies kann erfolgen durch:
Geben Sie einen Pfad zu einer neuen Konfigurationsdatei relativ zu gulpfile.mjs
an (sie sollte mit der in build/config/
gefundenen Struktur übereinstimmen).
npx gulp {build|devenv} -t {chrome|firefox} --config config.mjs
Angeben eines Pfads zu einer neuen manifest.json
Datei relativ zu gulpfile.mjs
. Sie sollten build/manifest.json
und build/tasks/manifest.mjs
überprüfen, um zu sehen, wie wir es ändern.
npx gulp {build|devenv} -t {chrome|firefox} -m manifest.json
Um Ihre Änderungen zu überprüfen, können Sie die Unit-Test-Suite verwenden, die sich im qunit -Verzeichnis des Repositorys befindet. Um die Komponententests auszuführen, gehen Sie zur Seite „Optionen“ der Erweiterung, öffnen Sie die JavaScript-Konsole und geben Sie Folgendes ein:
location.href = "qunit/index.html";
Die Unit-Tests werden automatisch ausgeführt, sobald die Seite geladen wird.
Es gibt auch einen externen Test-Runner, der über die Befehlszeile aufgerufen werden kann, um die Unit-Tests zusammen mit einigen Integrationstests auf verschiedenen Browsern auszuführen und automatisch auch den Linter auszuführen.
Um unter Windows den Test Runner verwenden zu können, müssen Sie nicht nur wie oben beschrieben eine Linux-Umgebung einrichten, sondern auch Node.js in Ihrer nativen Windows-Umgebung installiert haben. Führen Sie dann die folgenden Befehle in PowerShell oder cmd.exe aus (anders als beim Erstellen der Erweiterung, die über Bash erfolgen muss).
Unter Linux erfordern neuere Versionen von Chromium libgbm
.
Stellen Sie sicher, dass die erforderlichen Pakete installiert und auf dem neuesten Stand sind:
npm install
Starten Sie den Testprozess für alle Browser:
npm test
Starten Sie den Testvorgang nur in einem Browser:
npm test -- -g <Firefox|Chromium|Edge>
Um andere Testteilmengen auszuführen, aktivieren Sie bitte die Option -g
in der Dokumentation von Mocha.
Standardmäßig lädt es die älteste kompatible Version und die neueste Release-Version jedes Browsers herunter (und speichert sie im Cache) und führt die Tests aus. Um die Tests für eine andere Version auszuführen, legen Sie die Umgebungsvariablen CHROMIUM_BINARY
, FIREFOX_BINARY
oder EDGE_BINARY
fest. Folgende Werte werden akzeptiert:
installed
path:<path>
download:<version>
<major>.<minor>
haben, für Chromium muss dies die Revisionsnummer sein). Diese Option ist für Edge nicht verfügbar. Die Teilmenge der Filtertests verwendet ABP-Testseiten. Um diese Tests auf einer anderen Version der Testseiten auszuführen, legen Sie die Umgebungsvariable TEST_PAGES_URL fest. Um unsichere https
-Zertifikate zu akzeptieren, setzen Sie außerdem die Umgebungsvariable TEST_PAGES_INSECURE auf "true"
.
Edge Chromium muss installiert werden, bevor die Edge-Tests ausgeführt werden.
Sie können den Code mit ESLint linten.
Sie müssen zuerst die Einrichtung vornehmen. Dadurch wird unsere Konfiguration eslint-config-eyeo und alles, was nach der Ausführung benötigt wird, installiert:
npm install
Dann können Sie Folgendes ausführen, um den Code zu linten:
npm run lint