В Firefox започна тестуване на третата версия на манифеста Chrome

Компания Mozilla обяви началото на тестването на реализацията на третата версия на манистъра Chrome в Firefox, която определя възможностите и ресурсите, достъпни за добавки, написани с помощта на API WebExtensions. За тестването на третата версия на манистъра в бета версията на Firefox 101, на страницата about:config, трябва да се зададe параметърa «extensions.manifestV3.enabled» на true и параметърa «xpinstall.signatures.required» на false. За инсталиране на добавки може да се използва интерфейса about:debugging. Включването на третата версия на манистъра по подразбиране е планирано за края на годината.

От версия 57 Firefox напълно премина на използването на API WebExtensions за разработка на разширения и спря поддръжката на технологията XUL. Преходът към WebExtensions позволи унифициране на разработката на разширения с платформите Chrome, Opera, Safari и Edge, улесни портването на разширения между различни уеб браузъри и даде възможност за пълноценно използване на многопроцесен режим на работа (разширенията WebExtensions могат да се изпълняват в отделни процеси, изолирани от останалите части на браузъра). За унифициране на разработката на разширения с другите браузъри Firefox осигурява почти пълна съвместимост с втората версия на манифеста на Chrome.

В момента в Chrome се работи по прехода към третата версия на манифеста, а поддръжката на втората версия ще бъде прекратена през януари 2023 година. Тъй като третата версия на манифеста бе обект на критика и ще доведе до нарушаване на функционирането на много разширения за блокиране на нежелано съдържание и осигуряване на безопасност, компанията Mozilla реши да се откаже от практиката на осигуряване на пълна съвместимост с манифеста в Firefox и да реализира някои промени по различен начин.

Основното недоволство относно третата версия на манифеста е свързано с превключването на API webRequest в режим само за четене, който позволяваше свързването на собствени обработчици, имащи пълен достъп до мрежовите заявки и способни на лето да модифицират трафика. Този API се използва в uBlock Origin и множество други добавки за блокиране на нежелано съдържание и осигуряване на безопасност. Вместо API webRequest в третата версия на манифеста е предложен ограничен по възможности API declarativeNetRequest, който предоставя достъп до вградената машина за филтриране, обработваща самостоятелно правилата за блокиране, невъзможна за използване на собствени алгоритми за филтриране и не позволяваща задаването на сложни правила, които да се припокриват в зависимост от условията.

В предложената в Firefox реализация на третата версия на манифеста беше добавен нов декларативен API за филтриране на съдържание, но за разлика от Chrome не спряха поддръжката на стария блокиращ режим на работа на API webRequest. Сред другите характеристики на реализирания нов манифест в Firefox:

  • В манифеста е определена замяна на фонова страница с вариант Service Workers, работещи като фонови процеси (Background Service Workers). За осигуряване на съвместимост с Firefox, тази изискване ще бъде реализирано, но ще бъде предложен и нов механизъм Event Pages, който е по-разбираем за уеб разработчиците, не изисква пълно преработване на добавките и премахва ограниченията, свързани с използването на Service Workers. Event Pages ще позволят на съществуващите добавки с фонови страници да отговарят на изискванията на третата версия на манифеста, като запазят достъпа до всичките възможности, необходими за работа с DOM. В наличната за тестване версия на манифеста в Firefox към момента се поддържат само Event Pages, а подкрепа за решението на базата на Service Workers ще бъде добавена по-късно. Това предложение беше подкрепено от компанията Apple, която реализира Event Pages в изданието Safari Technology Preview 136.
  • Новата гранулирана модел на искане на права — добавката няма да може да се активира веднага за всички страници (права «all_urls» са премахнати), а ще работи само в контекста на активната страница, т.е. потребителят ще трябва да потвърди работата на добавката за всеки сайт. В Firefox всичките искания за достъп до данни на сайта ще се разглеждат като незадължителни, а окончателното решение за предоставяне на достъп ще взема потребителят, който ще може селективно да реши на коя добавка да предостави достъп до своите данни на този или онзи сайт.
  • Промяна на обработката на Cross-origin искания — в съответствие с новия манистър, на скриптовете за обработка на съдържание ще се прилагат същите ограничения на правата, както за основната страница, в която тези скриптове се внедряват (например, ако страницата няма достъп до API за определяне на местоположение, то и скриптът на добавката няма да получи този достъп). Това изменение е напълно реализирано в Firefox.
  • API на базата на Promise. Firefox вече поддържа този API и за третата версия на манистъра ще го премести в пространство на имена «chrome.*».
  • Забрана за изпълнение на код, зареден от външни сървъри (става дума за ситуации, в които добавката зарежда и изпълнява външен код). В Firefox вече се прилага блокировка на външния код и разработчиците от Mozilla добавиха допълнителни техники за проследяване на зарежданията на код, предлагани в третата версия на манифеста. За скриптовете за обработка на съдържанието е представена отделна политика за ограничаване на достъпа до съдържанието (CSP, Content Security Policy).

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster