Hoʻomaka ʻo Mozilla e ʻae i nā mea hoʻohui e pili ana i ke kolu o ka mana o ka manifesto 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 и реализовать иначе некоторые изменения.

ʻO ka hauʻoli nui me ke kolu o ka mana o ka manifesto e pili ana i ka unuhi ʻana i ke ʻano heluhelu wale nō o ka webRequest API, kahi i hiki ai ke hoʻopili i kāu mau mea lawelawe ponoʻī i loaʻa i nā noi pūnaewele a hiki ke hoʻololi i ke kaʻa ma ka lele. Hoʻohana ʻia kēia API ma uBlock Origin a me nā mea hoʻohui ʻē aʻe he nui no ka pale ʻana i nā ʻike kūpono ʻole a hāʻawi i ka palekana. Ma kahi o ka webRequest API, ʻo ke kolu o ka mana o ka hōʻike e hāʻawi i kahi palena palena declarativeNetRequest API, e hāʻawi ana i ke komo ʻana i kahi mīkini kānana i kūkulu ʻia e hana kūʻokoʻa i nā lula pale, ʻaʻole e ʻae i ka hoʻohana ʻana i kāna mau kānana ponoʻī, a ʻaʻole ia. e ʻae i ka hoʻonohonoho ʻana i nā lula paʻakikī e pili ana kekahi i kekahi ma muli o nā kūlana.

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

  • Добавлен новый декларативный API фильтрации контента, но в отличие от Chrome не прекращена поддержка старого блокирующего режима работы API webRequest.
  • В манифесте определена замена фоновых страниц на вариант Service Workers, работающий в виде фоновых процессов (Background Service Workers). Для обеспечения совместимости в будущем в Firefox будет реализована поддержка Service Workers, но в настоящее время вместо них предложен новый механизм Event Pages, который более привычен для web-разработчиков, не требует полной переработки дополнений и устраняет ограничения, связанные с применением Service Workers. Event Pages позволит привести существующие дополнения с фоновыми страницами к требованиям третьей версии манифеста, сохранив при этом доступ ко всем возможностям, необходимым для работы с DOM.
  • ʻO ke kumu hoʻohālike noi ʻae granular hou - ʻaʻole hiki ke hoʻāla ʻia ka add-on no nā ʻaoʻao āpau i ka manawa hoʻokahi (ua wehe ʻia ka ʻae "all_urls"), akā e hana wale ʻia ma ka pōʻaiapili o ka pā hana, ʻo ia. pono ka mea hoʻohana e hōʻoia i ka hana o ka add-on no kēlā me kēia pūnaewele. Ma Firefox, e noʻonoʻo ʻia nā noi a pau e komo i ka ʻikepili pūnaewele, a ʻo ka hoʻoholo hope loa no ka hāʻawi ʻana i ke komo e hana ʻia e ka mea hoʻohana, hiki iā ia ke koho koho i ka mea hoʻohui e hāʻawi i ke komo i kā lākou ʻikepili ma kahi pūnaewele.

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

    Hoʻomaka ʻo Mozilla e ʻae i nā mea hoʻohui e pili ana i ke kolu o ka mana o ka manifesto Chrome
  • Hoʻololi i ka lawelawe ʻana i nā noi Cross-origin - e like me ka hōʻike hou, e kau ʻia nā palapala hoʻoponopono ʻike i nā ʻae like ʻole e like me ka ʻaoʻao nui kahi i hoʻokomo ʻia ai kēia mau palapala (no ka laʻana, inā ʻaʻole hiki i ka ʻaoʻao ke komo i ka wahi API, a laila, ʻaʻole e loaʻa kēia ʻike i nā mea hoʻohui script). Hoʻokō piha ʻia kēia hoʻololi ma Firefox.
  • API на основе Promise. Firefox поддерживает данный API и для третьей версии манифеста перенесёт его в пространство имён «chrome.*».
  • Запрет выполнения кода, загруженного с внешних серверов (речь про ситуации, когда дополнение подгружает и выполняет внешний код). В Firefox применяется блокировка внешнего кода и разработчики Mozilla добавили дополнительные техники отслеживания загрузок кода, предлагаемые в третьей версии манифеста. Для скриптов обработки контента представлена отдельная политика ограничения доступа к контенту (CSP, Content Security Policy).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka