Разработчиците от Mozilla актуализираха информацията относно плановете за поддръжка на втората и третата версии на манифеста на Chrome в Firefox. Google планира да прекрати поддръжката на разширения, използващи втората версия на манифеста, в тестовите версии на Chrome 127 (Dev, Canary и Beta) през юни тази година. Поддръжката на втората версия на манифеста в стабилната версия ще бъде прекратена най-рано през юли.
От своя страна Mozilla няма да спира поддръжката на втората версия на манифеста в обозримото бъдеще и ще запази възможността за стартиране на разширения, използващи функционалности, недостъпни в третата версия на манифеста. Решението за непълна съвместимост с третата версия на манифеста на Chrome остава в сила за Firefox. В Firefox ще бъде оставен пълнофункционален API webRequest, който в Chrome ще бъде преместен в режим само за четене.
В Firefox също така ще бъде запазена поддръжката за изпълнение на фонови скриптове чрез механизма Event Pages, докато в третата версия на манифеста се предписва използването на Service Workers вместо тях. Фоновите скриптове, базирани на Service Workers, в момента не се поддържат в Firefox, но разработчиците ще имат възможност да определят в разширението обработвачи как на базата на Event Pages, така и скриптове на базата на Service Workers, което ще позволи създаването на разширения, съответстващи на третата версия на манифеста и работещи в Chrome и Firefox.
Манифестът на Chrome определя възможностите и ресурсите, достъпни за добавки, написани с използване на API WebExtensions. Започвайки от версия 57, Firefox напълно премина на използване на API WebExtensions за разработка на добавки и прекрати поддръжката на технологията XUL. Преходът към WebExtensions позволи унифициране на разработката на добавки с платформите Chrome, Opera, Safari и Edge, улесни преноса на добавки между различни web-браузъри и даде възможност за пълноценно използване на многопроцесния режим на работа (добавки WebExtensions могат да се изпълняват в отделни процеси, изолирано от другите части на браузъра). За унифициране на разработката на добавки с останалите браузъри в Firefox се осигурява почти пълна съвместимост с втората версия на манифеста на Chrome.
В рамките на инициативата за опростяване на създаването на безопасни и високопродуктивни разширения и за усложняване на възможността за създаване на небезопасни и бавни разширения, Google разработи третата версия на манифеста. Основната опозиция на третата версия на манифеста идва от преминаването на API webRequest в режим само за четене, което разрешаваше свързването на собствени обработвачи с пълен достъп до мрежовите заявки и възможност за модификация на трафика в реално време. Вместо API webRequest, в третата версия на манифеста е добавен ограничен по функционалност API declarativeNetRequest, който предоставя достъп до вградения механизъм за филтриране, самостоятелно обработващ правилата за блокиране, без възможност за използване на собствени алгоритми за филтриране.
Сред особеностите на реализацията на третата версия на манифеста в Firefox:
- Добавен е нов декларативен API за филтриране на съдържанието, но в отличие от Chrome не е прекратена поддръжката на стария блокиращ режим на работа на API webRequest.
- Реализиран е механизъм Event Pages, който е по-удобен за уеб разработчиците, не изисква пълна преработка на добавките и премахва ограниченията, свързани с използването на Service Workers. Event Pages ще позволи адаптиране на съществуващите добавки с фонови страници към изискванията на третата версия на манифеста, като същевременно запази достъпа до всички необходимите функции за работа с DOM.
- Новата гранулирана модел на заявка за права — добавката няма да може да се активира веднага за всички страници (правото "all_urls" е премахнато) и ще работи само в контекста на активната вкладка, т.е. потребителят ще трябва да потвърди работата на добавката за всеки сайт. В Firefox всички искания за достъп до данни от сайта ще се разглеждат като незадължителни, а окончателното решение за предоставяне на достъп ще взема потребителят, който ще може селективно да решава на коя добавка да предостави достъп до своите данни на конкретен сайт.
За управление на правомощията в интерфейса е добавен бутон „Unified Extensions“ за пряко управление на достъпа на всяка добавка до определени сайтове — потребителят може да предостави и отзове достъпа на добавката до всеки сайт. Управлението на правомощията се прилага само за добавки на базата на третата версия на манифеста; за добавките на втората версия на манифеста не се въвежда гранулирано управление на достъпа до сайтове.

- Промяна в обработката на Cross-origin искания — съгласно новия манифест на скриптовете, ограниченията на правата ще важат и за основната страница, в която тези скриптове са внедрени (например, ако страницата няма достъп до API за определяне на местоположението, то и скриптът на добавката няма да получи този достъп). Тази промяна вече е напълно реализирана в Firefox.
- API на базата на Promise. Firefox поддържа този API и за третата версия на манифеста.
- Забрана за изпълнение на код, зареден от външни сървъри (става въпрос за ситуации, когато добавката зарежда и изпълнява външен код). В Firefox се прилага блокировка на външния код, а разработчиците на Mozilla добавиха допълнителни техники за проследяване на зареждането на кода. За скриптовете за обработка на съдържанието е представена отделна политика за ограничаване на достъпа до съдържанието (CSP, Content Security Policy).
Източник: opennet.ru

