قام Raymond Hill، مؤلف نظام حظر المحتوى uBlock Origin، بنشر إضافة تجريبية للمتصفح uBO Minus مع تنفيذ أحد متغيرات uBlock Origin المترجمة إلى واجهة برمجة التطبيقات declarativeNetRequest، والتي تم فرض استخدامها في الإصدار الثالث من بيان Chrome. على عكس uBlock Origin الكلاسيكي، تستخدم الوظيفة الإضافية الجديدة قدرات محرك تصفية المحتوى المدمج في المتصفح ولا تتطلب إذنًا لاعتراض وتعديل جميع بيانات الموقع أثناء التثبيت.
لا تحتوي الإضافة حتى الآن على لوحة منبثقة أو صفحات إعدادات، وتقتصر وظيفتها على حظر طلبات الشبكة. للعمل دون أذونات موسعة، يتم تعطيل ميزات مثل المرشحات التجميلية لاستبدال محتوى الصفحة ("##")، واستبدال النصوص البرمجية على المواقع ("##+js")، ومرشحات إعادة توجيه الطلبات ("redirect=")، ومرشحات رأس سياسة أمان المحتوى (CSP)، ومرشحات إزالة معلمات الطلب ("removeparam="). بخلاف ذلك، تتوافق قائمة المرشحات الافتراضية تمامًا مع مجموعة uBlock Origin، وتتضمن حوالي 22 ألف قاعدة.
بالإضافة إلى ذلك، قبل بضعة أيام، تم تقديم نسخة تجريبية من الوظيفة الإضافية لحظر الإعلانات AdGuard — AdGuardMV3، والتي تمت ترجمتها أيضًا إلى واجهة برمجة تطبيقات declarativeNetRequest وقادرة على العمل في المتصفحات التي تدعم الإصدار الثالث فقط من بيان Chrome. يوفر النموذج الأولي المقدم للاختبار جميع الوظائف التي يحتاجها المستخدمون العاديون لمنع الإعلانات، لكنه يتخلف عن الوظيفة الإضافية للإصدار الثاني من البيان في ميزاته المتقدمة التي قد تهم المستخدمين المتقدمين.
سيواصل AdGuard الجديد إخفاء اللافتات، وأدوات التواصل الاجتماعي، والعناصر المزعجة، وحظر الإعلانات على منصات الفيديو مثل يوتيوب، وحظر طلبات تتبع الحركات بشكل استباقي. تشمل القيود وميض الإعلانات المُلحقة بسبب تأخر تطبيق القواعد التجميلية لمدة تتراوح بين ثانية ونصف وثانيتين، وفقدان بعض الميزات المتعلقة بتصفية ملفات تعريف الارتباط، واستخدام التعبيرات العادية ومعلمات طلبات التصفية (توفر واجهة برمجة التطبيقات الجديدة تعبيرات عادية مبسطة)، وتوافر الإحصائيات وسجل استجابة التصفية فقط في وضع المطور.
يُشار أيضًا إلى احتمال انخفاض عدد القواعد بسبب القيود المُدخلة في الإصدار الثالث من البيان. إذا كان لدى المتصفح امتداد واحد يستخدم declarativeNetRequest، فلا توجد مشاكل مع القواعد الثابتة، إذ يوجد حد عام لجميع الامتدادات، يسمح بـ 330 ألف قاعدة. عند وجود عدة امتدادات، يُطبق حد 30 ألف قاعدة، وهو قد لا يكون كافيًا. بالنسبة للقواعد الديناميكية، يُطبق حد 5000 قاعدة، وللتعبيرات النمطية - 1000 قاعدة.
بدءًا من يناير 2023، تخطط Chrome للتوقف عن دعم الإصدار XNUMX من البيان وجعل الإصدار XNUMX إلزاميًا لجميع الوظائف الإضافية. في البداية، تعرضت النسخة الثالثة من البيان لانتقادات بسبب كسر العديد من إضافات حظر المحتوى والأمان. يحدد Chrome Manifest الإمكانيات والموارد المقدمة للإضافات. تم تطوير الإصدار الثالث من البيان كجزء من مبادرة لتعزيز الأمان والخصوصية والأداء للإضافات. الهدف الرئيسي من التغييرات هو تسهيل إنشاء إضافات آمنة وعالية الأداء، وجعل إنشاء إضافات غير آمنة وبطيئة أكثر صعوبة.
يرتبط عدم الرضا الرئيسي عن الإصدار الثالث من البيان بترجمة webRequest API إلى وضع القراءة فقط، مما جعل من الممكن توصيل معالجاتك الخاصة التي تتمتع بإمكانية الوصول الكامل إلى طلبات الشبكة ويمكنها تعديل حركة المرور بسرعة. يتم استخدام واجهة برمجة التطبيقات هذه في uBlock Origin وAdGuard والعديد من الوظائف الإضافية الأخرى لحظر المحتوى غير المرغوب فيه وضمان الأمان. بدلاً من واجهة برمجة تطبيقات webRequest، يقدم الإصدار الثالث من البيان واجهة برمجة تطبيقات NetRequest ذات قدرة محدودة، والتي توفر الوصول إلى محرك تصفية مدمج يعالج قواعد الحظر بشكل مستقل، ولا يسمح باستخدام خوارزميات التصفية الخاصة به، ولا السماح بوضع قواعد معقدة تتداخل مع بعضها البعض حسب الظروف.
على مدى ثلاث سنوات من المناقشات حول الإصدار الثالث القادم من البيان، أخذت Google في الاعتبار العديد من رغبات المجتمع ووسعت واجهة برمجة تطبيقات declarativeNetRequest المقدمة في الأصل مع الإمكانات المطلوبة في الإضافات الحالية. على سبيل المثال، أضافت Google دعمًا إلى DeclarativeNetRequest API لاستخدام مجموعات قواعد ثابتة متعددة، وتصفية التعبير العادي، وتعديل رؤوس HTTP، وتغيير القواعد وإضافتها ديناميكيًا، وحذف واستبدال معلمات الاستعلام، والتصفية المستندة إلى علامات التبويب، وإنشاء مجموعات قواعد خاصة بالجلسة.
المصدر: opennet.ru
