در 21 نوامبر، فهرست AMO (addons.mozilla.org) با استفاده از نسخه 109 مانیفست کروم، پذیرش و امضای دیجیتالی افزونهها را آغاز میکند. این افزونه ها را می توان در بیلدهای شبانه فایرفاکس آزمایش کرد. در نسخه های پایدار، پشتیبانی از مانیفست نسخه 17 در فایرفاکس 2023 فعال خواهد شد که برای 2023 ژانویه XNUMX برنامه ریزی شده است. پشتیبانی از نسخه دوم مانیفست برای آینده قابل پیشبینی حفظ خواهد شد، اما در پایان سال XNUMX، پس از ارزیابی پویایی انتقال اضافات به نسخه سوم مانیفست، امکان لغو پشتیبانی از نسخه دوم مانیفست وجود دارد. در نظر گرفته خواهد شد.
مانیفست کروم قابلیت ها و منابع موجود برای برنامه های افزودنی نوشته شده با استفاده از WebExtensions API را تعریف می کند. با شروع نسخه 57، فایرفاکس به طور کامل به استفاده از WebExtensions API برای توسعه افزونه ها روی آورد و پشتیبانی از فناوری XUL را متوقف کرد. انتقال به WebExtensions امکان یکسان سازی توسعه افزونه ها با پلتفرم های Chrome، Opera، Safari و Edge را فراهم کرد، انتقال افزونه ها بین مرورگرهای وب مختلف را ساده کرد و امکان استفاده کامل از حالت چند فرآیندی را فراهم کرد. عملیات (افزونه های WebExtensions را می توان در فرآیندهای جداگانه، جدا از بقیه مرورگر اجرا کرد). برای یکسان سازی توسعه افزونه ها با سایر مرورگرها، فایرفاکس تقریباً سازگاری کامل با نسخه دوم مانیفست کروم را فراهم می کند.
Chrome در حال حاضر برای انتقال به نسخه 2024 مانیفست کار می کند و پشتیبانی از نسخه XNUMX در ژانویه XNUMX متوقف خواهد شد. هدف اصلی از تغییرات ایجاد شده در نسخه جدید سهولت ایجاد افزونه های ایمن و با کارایی بالا و دشوارتر ساختن افزونه های ناامن و کند است. از آنجایی که نسخه سوم مانیفست مورد انتقاد قرار گرفته و بسیاری از افزونههای امنیتی و مسدود کردن محتوا را از بین میبرد، موزیلا تصمیم گرفته است از سازگاری کامل با مانیفست در فایرفاکس کنارهگیری کند و برخی تغییرات را بهطور متفاوتی اعمال کند.
نارضایتی اصلی از نسخه سوم مانیفست مربوط به ترجمه به حالت فقط خواندنی webRequest API است که امکان اتصال کنترل کننده های خود را که دسترسی کامل به درخواست های شبکه دارند و می توانند ترافیک را در پرواز تغییر دهند، می دهد. این API در uBlock Origin و بسیاری از افزونه های دیگر برای مسدود کردن محتوای نامناسب و ایجاد امنیت استفاده می شود. به جای webRequest API، نسخه سوم مانیفست یک API اعلامی NetRequest با قابلیت محدود ارائه می دهد که دسترسی به یک موتور فیلتر داخلی را فراهم می کند که به طور مستقل قوانین مسدود کردن را پردازش می کند، استفاده از الگوریتم های فیلتر خود را مجاز نمی داند و اجازه نمی دهد. اجازه می دهد قوانین پیچیده ای را تنظیم کنید که بسته به شرایط با یکدیگر همپوشانی دارند.
از جمله ویژگی های پیاده سازی مانیفست جدید در فایرفاکس:
- یک API فیلتر کننده محتوای اعلامی جدید اضافه شده است، اما برخلاف Chrome، پشتیبانی از حالت مسدود کردن قدیمی webRequest API متوقف نشده است.
- مانیفست جایگزینی صفحات پس زمینه را با گزینه Service Workers تعریف می کند که به عنوان فرآیندهای پس زمینه (Background Service Workers) اجرا می شود. برای اطمینان از سازگاری در آینده، فایرفاکس از Service Workers پشتیبانی می کند، اما در حال حاضر مکانیسم Event Pages جدید جایگزین شده اند، که برای توسعه دهندگان وب آشناتر است، نیازی به بازسازی کامل افزونه ها ندارد و محدودیت های مرتبط با آن را حذف می کند. استفاده از کارگران خدماتی صفحات رویداد به افزودههای صفحه پسزمینه موجود اجازه میدهند تا با الزامات نسخه سوم مانیفست مطابقت داشته باشند و در عین حال دسترسی به تمام قابلیتهای مورد نیاز برای کار با DOM را حفظ کنند.
- مدل جدید درخواست مجوز گرانول - افزونه نمی تواند برای همه صفحات به طور همزمان فعال شود (مجوز "all_urls" حذف شده است)، اما فقط در زمینه برگه فعال کار می کند، به عنوان مثال. کاربر باید تأیید کند که این افزونه برای هر سایت کار می کند. در فایرفاکس، تمام درخواستها برای دسترسی به دادههای سایت اختیاری در نظر گرفته میشوند و تصمیم نهایی در مورد اعطای دسترسی توسط کاربر گرفته میشود و کاربر میتواند به طور انتخابی تصمیم بگیرد که به کدام افزونه اجازه دسترسی به دادههای خود را در یک سایت خاص بدهد.
برای مدیریت مجوزها، دکمه جدید «افزونههای یکپارچه» به رابط اضافه شده است که میتوان آن را در نسخههای شبانه فایرفاکس آزمایش کرد. این دکمه ابزاری را برای کنترل مستقیم سایتهایی فراهم میکند که هر افزونه به آنها دسترسی دارد - کاربر میتواند دسترسی یک افزونه را به هر سایتی اعطا و لغو کند. مدیریت مجوز فقط برای افزونههای مبتنی بر نسخه سوم مانیفست اعمال میشود؛ برای افزونههای مبتنی بر نسخه دوم مانیفست، کنترل دسترسی دقیق به سایتها انجام نمیشود.
- تغییر در رسیدگی به درخواستهای متقاطع - مطابق با مانیفست جدید، اسکریپتهای پردازش محتوا مشمول همان محدودیتهای مجوز برای صفحه اصلی که این اسکریپتها در آن جاسازی شدهاند (به عنوان مثال، اگر صفحه دسترسی به مکان API، سپس افزونه های اسکریپت نیز این دسترسی را دریافت نخواهند کرد). این تغییر به طور کامل در فایرفاکس پیاده سازی شده است.
- API مبتنی بر وعده فایرفاکس از این API پشتیبانی می کند و برای نسخه سوم مانیفست آن را به فضای نام "chrome.*" منتقل می کند.
- ممنوعیت اجرای کد دانلود شده از سرورهای خارجی (ما در مورد شرایطی صحبت می کنیم که افزونه بارگیری و کد خارجی را اجرا می کند). فایرفاکس از مسدود کردن کد خارجی استفاده می کند و توسعه دهندگان موزیلا تکنیک های ردیابی دانلود کد اضافی ارائه شده در نسخه سوم مانیفست را اضافه کرده اند. برای اسکریپت های پردازش محتوا، یک خط مشی محدودیت دسترسی به محتوا جداگانه (CSP، Content Security Policy) ارائه شده است.
منبع: opennet.ru