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

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

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

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

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

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

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

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

Добавяне на нов коментар