このコードベースは非推奨です。 Adblock Plus 3.11 以降、Chrome、Firefox、Microsoft Edge、Opera 用 Adblock Plus は adblockplusui リポジトリに基づいています。
Web 拡張機能のコア広告ブロック統合の開発は、webext-sdk リポジトリに移行されました。
このリポジトリには、Chrome、Opera、Microsoft Edge、Firefox のプラットフォーム固有の Adblock Plus ソース コードが含まれています。これらのプラットフォーム用の Adblock Plus を構築するために使用できます。
Windows では、WSL で実行される Linux 環境が必要です。次に、上記の要件をインストールし、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.*ディレクトリが作成されます。このディレクトリは、Chromium ベースのブラウザではchrome://extensionsに、Firefox ではabout:debuggingに解凍された拡張機能としてロードできます。ソース コードに変更を加えた後、コマンドを再実行して開発環境を更新すると、数秒後に拡張機能が自動的に再ロードされます。
コードに基づいて拡張機能を作成し、同じビルド ツールを使用したい場合は、いくつかのカスタマイズ オプションが提供されます。
これは次の方法で実行できます。
gulpfile.mjs
を基準とした新しい構成ファイルへのパスを指定します ( build/config/
にある構造と一致する必要があります)。
npx gulp {build|devenv} -t {chrome|firefox} --config config.mjs
gulpfile.mjs
を基準とした新しいmanifest.json
ファイルへのパスを指定します。 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 環境のセットアップに加えて、ネイティブ Windows 環境に Node.js をインストールする必要があります。次に、PowerShell または cmd.exe 内から以下のコマンドを実行します (Bash から実行する必要がある拡張機能をビルドする場合とは異なります)。
Linux では、Chromium の新しいバージョンにはlibgbm
必要です。
必要なパッケージがインストールされ、最新であることを確認してください。
npm install
すべてのブラウザのテスト プロセスを開始します。
npm test
1 つのブラウザのみでテスト プロセスを開始します。
npm test -- -g <Firefox|Chromium|Edge>
他のテスト サブセットを実行するには、Mocha のドキュメントで-g
オプションを確認してください。
デフォルトでは、各ブラウザーの互換性のある最も古いバージョンと最新のリリース バージョンをダウンロード (およびキャッシュ) してテストを実行します。別のバージョンに対してテストを実行するには、 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 を使用してコードを lint できます。
最初にセットアップする必要があります。これにより、設定 eslint-config-eyeo と、実行後に必要なものがすべてインストールされます。
npm install
次に、コードを lint するために実行できます。
npm run lint