موزیلا اعلام کرده است که آزمایش اجرای نسخه سوم مانیفست کروم توسط فایرفاکس را آغاز کرده است که قابلیت ها و منابع موجود برای افزونه های نوشته شده با استفاده از WebExtensions API را تعریف می کند. برای آزمایش نسخه سوم مانیفست در فایرفاکس 101 بتا، باید پارامتر "extensions.manifestV3.enabled" را روی true و پارامتر "xpinstall.signatures.required" را روی false در صفحه about:config تنظیم کنید. برای نصب افزونه ها، می توانید از رابط about:debugging استفاده کنید. نسخه سوم مانیفست قرار است تا پایان سال به طور پیش فرض فعال شود.
با شروع نسخه 57، فایرفاکس به طور کامل به استفاده از WebExtensions API برای توسعه افزونه ها روی آورد و پشتیبانی از فناوری XUL را متوقف کرد. انتقال به WebExtensions امکان یکسان سازی توسعه افزونه ها با پلتفرم های Chrome، Opera، Safari و Edge را فراهم کرد، انتقال افزونه ها بین مرورگرهای وب مختلف را ساده کرد و امکان استفاده کامل از حالت چند فرآیندی را فراهم کرد. عملیات (افزونه های WebExtensions را می توان در فرآیندهای جداگانه، جدا از بقیه مرورگر اجرا کرد). برای یکسان سازی توسعه افزونه ها با سایر مرورگرها، فایرفاکس تقریباً سازگاری کامل با نسخه دوم مانیفست کروم را فراهم می کند.
کروم در حال حاضر برای انتقال به نسخه 2023 مانیفست کار می کند و پشتیبانی از نسخه XNUMX در ژانویه XNUMX متوقف خواهد شد. از آنجایی که نسخه سوم مانیفست مورد انتقاد قرار گرفته است و بسیاری از افزونههای امنیتی و مسدود کردن محتوا را از بین میبرد، موزیلا تصمیم گرفته است تا از تمرین اطمینان از سازگاری کامل با مانیفست در فایرفاکس کنارهگیری کند و برخی تغییرات را متفاوت اجرا کند.
نارضایتی اصلی از نسخه سوم مانیفست مربوط به ترجمه به حالت فقط خواندنی webRequest API است که امکان اتصال کنترل کننده های خود را که دسترسی کامل به درخواست های شبکه دارند و می توانند ترافیک را در پرواز تغییر دهند، می دهد. این API در uBlock Origin و بسیاری از افزونه های دیگر برای مسدود کردن محتوای نامناسب و ایجاد امنیت استفاده می شود. به جای webRequest API، نسخه سوم مانیفست یک API اعلامی NetRequest با قابلیت محدود ارائه می دهد که دسترسی به یک موتور فیلتر داخلی را فراهم می کند که به طور مستقل قوانین مسدود کردن را پردازش می کند، استفاده از الگوریتم های فیلتر خود را مجاز نمی داند و اجازه نمی دهد. اجازه می دهد قوانین پیچیده ای را تنظیم کنید که بسته به شرایط با یکدیگر همپوشانی دارند.
در اجرای نسخه سوم مانیفست پیشنهادی در فایرفاکس، یک API اعلامی جدید برای فیلتر کردن محتوا اضافه شد، اما بر خلاف کروم، آنها از حالت مسدود کردن قدیمی عملکرد webRequest API پشتیبانی نکردند. سایر ویژگی های پیاده سازی مانیفست جدید در فایرفاکس عبارتند از:
- مانیفست جایگزینی صفحات پس زمینه را با گزینه Service Workers تعریف می کند که به عنوان فرآیندهای پس زمینه (Background Service Workers) اجرا می شود. برای اطمینان از سازگاری، فایرفاکس این الزام را اجرا خواهد کرد، اما علاوه بر این، مکانیسم صفحات رویداد جدیدی را ارائه می دهد که برای توسعه دهندگان وب آشناتر است، نیازی به بازسازی کامل افزونه ها ندارد و محدودیت های مربوط به استفاده از Service Workers را حذف می کند. . صفحات رویداد به افزودههای صفحه پسزمینه موجود اجازه میدهند تا با الزامات نسخه سوم مانیفست مطابقت داشته باشند و در عین حال دسترسی به تمام قابلیتهای مورد نیاز برای کار با DOM را حفظ کنند. در پیادهسازی مانیفست موجود برای آزمایش در فایرفاکس، در حال حاضر فقط صفحات رویداد پشتیبانی میشوند و پشتیبانی از راهحلی مبتنی بر Service Workers قول داده شده است که بعداً اضافه شود. اپل از این پیشنهاد پشتیبانی کرد و صفحات رویداد را در Safari Technology Preview 136 پیاده سازی کرد.
- مدل جدید درخواست مجوز گرانول - افزونه نمی تواند برای همه صفحات به طور همزمان فعال شود (مجوز "all_urls" حذف شده است)، اما فقط در زمینه برگه فعال کار می کند، به عنوان مثال. کاربر باید تأیید کند که این افزونه برای هر سایت کار می کند. در فایرفاکس، تمام درخواستها برای دسترسی به دادههای سایت اختیاری در نظر گرفته میشوند و تصمیم نهایی در مورد اعطای دسترسی توسط کاربر گرفته میشود و کاربر میتواند به طور انتخابی تصمیم بگیرد که به کدام افزونه اجازه دسترسی به دادههای خود را در یک سایت خاص بدهد.
- تغییر در رسیدگی به درخواستهای متقاطع - مطابق با مانیفست جدید، اسکریپتهای پردازش محتوا مشمول همان محدودیتهای مجوز برای صفحه اصلی که این اسکریپتها در آن جاسازی شدهاند (به عنوان مثال، اگر صفحه دسترسی به مکان API، سپس افزونه های اسکریپت نیز این دسترسی را دریافت نخواهند کرد). این تغییر به طور کامل در فایرفاکس پیاده سازی شده است.
- API مبتنی بر وعده فایرفاکس از قبل از این API پشتیبانی می کند و آن را به فضای نام "chrome.*" برای نسخه سوم مانیفست منتقل می کند.
- ممنوعیت اجرای کد دانلود شده از سرورهای خارجی (ما در مورد شرایطی صحبت می کنیم که افزونه بارگیری و کد خارجی را اجرا می کند). فایرفاکس در حال حاضر از مسدود کردن کد خارجی استفاده می کند و توسعه دهندگان موزیلا تکنیک های ردیابی دانلود کد اضافی ارائه شده در نسخه سوم مانیفست را اضافه کرده اند. برای اسکریپت های پردازش محتوا، یک خط مشی محدودیت دسترسی به محتوا جداگانه (CSP، Content Security Policy) ارائه شده است.
منبع: opennet.ru