تم إهمال قاعدة التعليمات البرمجية هذه. اعتبارًا من 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";
سيتم تشغيل اختبارات الوحدة تلقائيًا بمجرد تحميل الصفحة.
يوجد أيضًا مشغل اختبار خارجي يمكن استدعاؤه من سطر الأوامر لتشغيل اختبارات الوحدة جنبًا إلى جنب مع بعض اختبارات التكامل على متصفحات مختلفة، وتشغيل linter تلقائيًا أيضًا.
على نظام التشغيل 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 Chromium قبل إجراء اختبارات Edge.
يمكنك فحص الكود باستخدام ESLint.
سوف تحتاج إلى الإعداد أولاً. سيؤدي هذا إلى تثبيت التكوين الخاص بنا eslint-config-eyeo وكل ما هو مطلوب بعد التشغيل:
npm install
ثم يمكنك الجري لفحص الكود:
npm run lint