Разработчиците от Mozilla обновиха информацията за плановете, свързани с поддръжката на втората и третата версия на манифеста на Chrome в Firefox. Google планира да прекрати поддръжката на добавките, използващи втората версия на манифеста, в тестовите версии на Chrome 127 (Dev, Canary и Beta) през юни тази година. В стабилната версия, поддръжката на втората версия на манифеста ще бъде прекратена не по-рано от юли.
От своя страна Mozilla няма да прекрати поддръжката на втората версия на манифеста в близко бъдеще и ще запази възможността за изпълнение на добавки, които използват функции, недостъпни в третата версия на манифеста. Решението да не се осигурява пълна съвместимост с третата версия на манифеста на Chrome остава в сила. В Firefox ще се запази пълният API webRequest, който в Chrome ще бъде преведен в режим само за четене.
В Firefox чрез механизма Event Pages ще бъде запазена поддръжката за изпълнение на фонова скриптове, базирани на DOM, вместо които в третата версия на манифеста е предписано да се използват Service Workers. Фоновите скриптове на базата на Service Workers в Firefox все още не се поддържат, но на разработчиците ще бъде предоставена възможност да определят в добавките как обработвачи на базата на Event Pages, така и скриптове на базата на Service Workers, което ще позволи създаването на добавки, съвместими с третата версия на манифеста и работещи в Chrome и Firefox.
Манифестът на Chrome определя възможностите и ресурсите, достъпни за добавки, написани с помощта на API WebExtensions. От версия 57 Firefox напълно премина към използването на API WebExtensions за разработка на добавки и прекрати поддръжката на технологията XUL. Преходът към WebExtensions позволи унифициране на разработката на добавки с платформите Chrome, Opera, Safari и Edge, опрости портването на добавки между различни уеб браузъри и предостави възможност за пълноценно използване на многопроцесния режим на работа (добавките 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

