Mozilla začne prijímať doplnky na základe tretej verzie manifestu Chrome

21 ноября каталог AMO (addons.mozilla.org) начнёт принимать и заверять цифровой подписью дополнения, использующие третью версию манифеста Chrome. Указанные дополнения можно будет протестировать в ночных сборках Firefox. В стабильных выпусках включение поддержки третьей версии манифеста будет произведено в Firefox 109, намеченном на 17 января 2023 года. Поддержка второй версии манифеста в обозримом будущем будет сохранена, но в конце 2023 года, после оценки динамики перевода дополнений на третью версию манифеста, будет рассмотрен вопрос о возможности перевода поддержки второй версии манифеста в разряд устаревших.

Манифест Chrome определяет возможности и ресурсы, доступные для дополнений, написанных с использованием API WebExtensions. Начиная с версии 57 Firefox полностью перешёл на использование API WebExtensions для разработки дополнений и прекратил поддержку технологии XUL. Переход на WebExtensions позволил унифицировать разработку дополнений с платформами Chrome, Opera, Safari и Edge, упростил портирование дополнений между различными web-браузерами и дал возможность полноценно использовать многопроцессный режим работы (дополнения WebExtensions могут выполняться в отдельных процессах, изолированно от остальных частей браузера). Для унификации разработки дополнений с остальными браузерами в Firefox обеспечивается почти полная совместимость со второй версией манифеста Chrome.

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

Hlavná nespokojnosť s treťou verziou manifestu súvisí s prekladom rozhrania webRequest API do režimu iba na čítanie, čo umožnilo pripojiť vaše vlastné handlery, ktoré majú plný prístup k sieťovým požiadavkám a môžu za behu upravovať prevádzku. Toto API sa používa v uBlock Origin a mnohých ďalších doplnkoch na blokovanie nevhodného obsahu a zabezpečenie. Namiesto rozhrania webRequest API ponúka tretia verzia manifestu deklaratívne NetRequest API s obmedzenými schopnosťami, ktoré poskytuje prístup k vstavanému filtrovaciemu mechanizmu, ktorý nezávisle spracováva pravidlá blokovania, neumožňuje použitie vlastných filtrovacích algoritmov a neumožňuje umožňujú nastavenie zložitých pravidiel, ktoré sa navzájom prekrývajú v závislosti od podmienok.

Среди особенностей реализации нового манифеста в Firefox:

  • Добавлен новый декларативный API фильтрации контента, но в отличие от Chrome не прекращена поддержка старого блокирующего режима работы API webRequest.
  • В манифесте определена замена фоновых страниц на вариант Service Workers, работающий в виде фоновых процессов (Background Service Workers). Для обеспечения совместимости в будущем в Firefox будет реализована поддержка Service Workers, но в настоящее время вместо них предложен новый механизм Event Pages, который более привычен для web-разработчиков, не требует полной переработки дополнений и устраняет ограничения, связанные с применением Service Workers. Event Pages позволит привести существующие дополнения с фоновыми страницами к требованиям третьей версии манифеста, сохранив при этом доступ ко всем возможностям, необходимым для работы с DOM.
  • Nový model žiadosti o granulárne povolenia – doplnok nebude možné aktivovať pre všetky stránky naraz (povolenie „all_urls“ bolo odstránené), ale bude fungovať iba v kontexte aktívnej karty, t.j. používateľ bude musieť potvrdiť, že doplnok funguje pre každú lokalitu. Vo Firefoxe budú všetky žiadosti o prístup k údajom stránok považované za voliteľné a konečné rozhodnutie o udelení prístupu urobí používateľ, ktorý sa bude môcť selektívne rozhodnúť, ktorému doplnku udelí prístup k svojim údajom na konkrétnej stránke.

    Для управления полномочиями в интерфейс добавлена новая кнопка «Unified Extensions», которую уже можно протестировать в ночных сборках Firefox. Кнопка предоставляет средства для непосредственного управления тем, к каким сайтам имеет доступ каждое дополнение — пользователь может предоставить и отозвать доступ дополнения к любому сайту. Управление полномочиями применяется только к дополнениям на основе третьей версии манифеста, для дополнений на второй версии манифеста гранулированное управление доступом к сайтам не производится.

    Mozilla začne prijímať doplnky na základe tretej verzie manifestu Chrome
  • Zmena v spracovaní žiadostí typu Cross-origin – v súlade s novým manifestom budú skripty spracovania obsahu podliehať rovnakým obmedzeniam povolení ako pre hlavnú stránku, do ktorej sú tieto skripty vložené (ak stránka napríklad nemá prístup k Location API, potom tento prístup nezískajú ani doplnky skriptov). Táto zmena je plne implementovaná vo Firefoxe.
  • API на основе Promise. Firefox поддерживает данный API и для третьей версии манифеста перенесёт его в пространство имён «chrome.*».
  • Запрет выполнения кода, загруженного с внешних серверов (речь про ситуации, когда дополнение подгружает и выполняет внешний код). В Firefox применяется блокировка внешнего кода и разработчики Mozilla добавили дополнительные техники отслеживания загрузок кода, предлагаемые в третьей версии манифеста. Для скриптов обработки контента представлена отдельная политика ограничения доступа к контенту (CSP, Content Security Policy).

Zdroj: opennet.ru

Pridať komentár