المتغيرات المعدة من uBlock Origin و AdGuard مع دعم الإصدار الثالث من بيان Chrome

قام ريموند هيل، مؤلف أنظمة حظر uBlock Origin للمحتوى غير المرغوب فيه، بنشر وظيفة إضافية تجريبية للمتصفح uBO Minus مع تنفيذ متغير uBlock Origin المترجم إلى واجهة برمجة التطبيقات التعريفية NetRequest، والتي تم وصف استخدامها في الإصدار الثالث من بيان كروم. على عكس uBlock Origin الكلاسيكي، تستخدم الوظيفة الإضافية الجديدة إمكانات محرك تصفية المحتوى المدمج في المتصفح ولا تتطلب أذونات التثبيت لاعتراض جميع بيانات الموقع وتغييرها.

لا تحتوي الوظيفة الإضافية حتى الآن على لوحة منبثقة أو صفحات إعدادات، وتقتصر الوظيفة على حظر طلبات الشبكة. للعمل بدون أذونات موسعة، تتوفر ميزات مثل المرشحات التجميلية لاستبدال المحتوى على الصفحة ("##")، واستبدال البرامج النصية على المواقع ("##+js")، والمرشحات لطلبات إعادة التوجيه ("redirect=")، والرأس يتم تعطيل عوامل التصفية CSP (سياسة أمان المحتوى) وعوامل تصفية إزالة معلمات الطلب ("removeparam ="). خلاف ذلك، تتوافق قائمة المرشحات الافتراضية بالكامل مع المجموعة من أصل uBlock وتتضمن حوالي 22 ألف قاعدة.

بالإضافة إلى ذلك، قبل بضعة أيام، تم تقديم نسخة تجريبية من الوظيفة الإضافية لحظر الإعلانات AdGuard - AdGuardMV3، والتي تمت ترجمتها أيضًا إلى DeclarativeNetRequest API وهي قادرة على العمل في المتصفحات التي تدعم الإصدار الثالث فقط من بيان Chrome. يوفر النموذج الأولي المقترح للاختبار جميع وظائف حظر الإعلانات التي يتطلبها المستخدمون العاديون، ولكنه يتخلف عن الوظيفة الإضافية للإصدار الثاني من البيان في إمكانياته المتقدمة، والتي قد تكون ذات فائدة للمستخدمين المتقدمين.

سيستمر AdGuard الجديد في إخفاء اللافتات وأدوات الشبكات الاجتماعية والعناصر المزعجة، وحظر الإعلانات على منصات الفيديو مثل YouTube، وحظر الطلبات المتعلقة بتتبع الحركات بشكل استباقي. تشمل القيود وميضًا في إدراجات الإعلانات بسبب التأخير لمدة تتراوح بين 1.5 و2 ثانية في تطبيق القواعد التجميلية، وفقدان بعض الإمكانات المتعلقة بتصفية ملفات تعريف الارتباط، واستخدام التعبيرات العادية وتصفية معلمات الاستعلام (توفر واجهة برمجة التطبيقات الجديدة تعبيرات عادية مبسطة) وتوافر الإحصائيات وسجلات استجابة المرشح فقط في وضع المطور.

كما تم ذكر احتمال تخفيض عدد القواعد بسبب القيود المقدمة في النسخة الثالثة من البيان. إذا كان المتصفح يحتوي على وظيفة إضافية واحدة مثبتة تستخدم declarativeNetRequest، فلا توجد مشاكل مع القواعد الثابتة، نظرًا لوجود حد عام لجميع الوظائف الإضافية، مما يسمح بـ 330 ألف قاعدة. عند وجود عدة إضافات، يتم تطبيق حد 30 ألف قاعدة، وهو ما قد لا يكون كافيًا. تم تقديم حد 5000 قاعدة للقواعد الديناميكية، و1000 قاعدة للتعبيرات العادية.

بدءًا من يناير 2023، يخطط متصفح Chrome لإيقاف دعم الإصدار الثاني من البيان وجعل الإصدار الثالث إلزاميًا لجميع الوظائف الإضافية. في البداية، أصبحت النسخة الثالثة من البيان هدفًا للانتقادات بسبب تعطيل العديد من الإضافات الخاصة بحظر المحتوى غير المناسب وضمان الأمان. يحدد بيان Chrome الإمكانيات والموارد المتوفرة للوظائف الإضافية. تم تطوير الإصدار الثالث من البيان كجزء من مبادرة لتعزيز الأمان والخصوصية وأداء الوظائف الإضافية. الهدف الرئيسي من التغييرات هو تسهيل إنشاء وظائف إضافية آمنة وعالية الأداء، وزيادة صعوبة إنشاء وظائف إضافية غير آمنة وبطيئة.

يرتبط عدم الرضا الرئيسي عن الإصدار الثالث من البيان بترجمة webRequest API إلى وضع القراءة فقط، مما جعل من الممكن توصيل معالجاتك الخاصة التي تتمتع بإمكانية الوصول الكامل إلى طلبات الشبكة ويمكنها تعديل حركة المرور بسرعة. يتم استخدام واجهة برمجة التطبيقات هذه في uBlock Origin وAdGuard والعديد من الوظائف الإضافية الأخرى لحظر المحتوى غير المرغوب فيه وضمان الأمان. بدلاً من واجهة برمجة تطبيقات webRequest، يقدم الإصدار الثالث من البيان واجهة برمجة تطبيقات NetRequest ذات قدرة محدودة، والتي توفر الوصول إلى محرك تصفية مدمج يعالج قواعد الحظر بشكل مستقل، ولا يسمح باستخدام خوارزميات التصفية الخاصة به، ولا السماح بوضع قواعد معقدة تتداخل مع بعضها البعض حسب الظروف.

على مدى ثلاث سنوات من المناقشات حول الإصدار الثالث القادم من البيان، أخذت Google في الاعتبار العديد من رغبات المجتمع ووسعت واجهة برمجة تطبيقات declarativeNetRequest المقدمة في الأصل مع الإمكانات المطلوبة في الإضافات الحالية. على سبيل المثال، أضافت Google دعمًا إلى DeclarativeNetRequest API لاستخدام مجموعات قواعد ثابتة متعددة، وتصفية التعبير العادي، وتعديل رؤوس HTTP، وتغيير القواعد وإضافتها ديناميكيًا، وحذف واستبدال معلمات الاستعلام، والتصفية المستندة إلى علامات التبويب، وإنشاء مجموعات قواعد خاصة بالجلسة.

المصدر: opennet.ru

إضافة تعليق