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

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

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

Настоящето в 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 и реализирано в изданието 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