Mozilla o le a amata talia faʻaopoopoga faʻavae i luga o le lona tolu o faʻaaliga o le Chrome manifesto

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 le le fiafia tele i le vaega lona tolu o le faʻaaliga e fesoʻotaʻi ma le faʻaliliuga i le faitau-naʻo le faʻaogaina o le webRequest API, lea na mafai ai ona faʻafesoʻotaʻi au lava aufaipisinisi o loʻo i ai le avanoa atoatoa i talosaga fesoʻotaʻiga ma e mafai ona suia fefaʻatauaiga i luga o le lele. O lenei API o loʻo faʻaogaina i le uBlock Origin ma le tele o isi faʻaopoopoga e poloka ai mea le talafeagai ma maua ai le saogalemu. Nai lo le webRequest API, o le vaega lona tolu o le faʻaaliga o loʻo ofoina atu ai le faʻatapulaʻaina o le mafai ona faʻaalia NetRequest API, lea e maua ai le avanoa i se masini faʻapipiʻi faʻapipiʻiina e tutoʻatasi le faʻaogaina o tulafono poloka, e le faʻatagaina le faʻaogaina o ana lava algorithms faʻamamaina, ma e le fa'ataga le fa'atulagaina o tulafono lavelave e fa'atasi le tasi ma le isi e fa'atatau i tulaga.

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

  • Добавлен новый декларативный API фильтрации контента, но в отличие от Chrome не прекращена поддержка старого блокирующего режима работы API webRequest.
  • В манифесте определена замена фоновых страниц на вариант Service Workers, работающий в виде фоновых процессов (Background Service Workers). Для обеспечения совместимости в будущем в Firefox будет реализована поддержка Service Workers, но в настоящее время вместо них предложен новый механизм Event Pages, который более привычен для web-разработчиков, не требует полной переработки дополнений и устраняет ограничения, связанные с применением Service Workers. Event Pages позволит привести существующие дополнения с фоновыми страницами к требованиям третьей версии манифеста, сохранив при этом доступ ко всем возможностям, необходимым для работы с DOM.
  • Le fa'ata'ita'iga fou ole talosaga fa'atagaga - ole a le mafai ona fa'agaoioia le fa'aopoopo mo itulau uma i le taimi e tasi (ua 'ave'esea le fa'atagaga o le "all_urls"), ae o le a na'o le fa'aogaina o le fa'agaioiga o le tab, i.e. e manaʻomia e le tagata faʻaoga le faʻamaonia o le faʻaopoopoga e aoga mo nofoaga taʻitasi. I Firefox, o talosaga uma e maua ai faʻamatalaga o le nofoaga o le a manatu e filifili, ma o le faaiuga mulimuli i le tuʻuina atu o le avanoa o le a faia e le tagata faʻaoga, o ia o le a mafai ona filifili filifilia po o fea faʻaopoopoga e tuʻuina atu avanoa i a latou faʻamatalaga i luga o se nofoaga patino.

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

    Mozilla o le a amata talia faʻaopoopoga faʻavae i luga o le lona tolu o faʻaaliga o le Chrome manifesto
  • Suiga ile fa'afoeina ole Cross-origin requests - e tusa ai ma le fa'aaliga fou, o tusitusiga e fa'agasolo ai mataupu o le a noatia i fa'atagaga tutusa e pei o le itulau autu o lo'o fa'apipi'i ai nei tusitusiga (mo se fa'ata'ita'iga, pe a le maua e le itulau le avanoa i le nofoaga API, ona le maua ai lea e le faʻaopoopoga o tusitusiga lenei avanoa). O lenei suiga o loʻo faʻatinoina atoatoa i Firefox.
  • API на основе Promise. Firefox поддерживает данный API и для третьей версии манифеста перенесёт его в пространство имён «chrome.*».
  • Запрет выполнения кода, загруженного с внешних серверов (речь про ситуации, когда дополнение подгружает и выполняет внешний код). В Firefox применяется блокировка внешнего кода и разработчики Mozilla добавили дополнительные техники отслеживания загрузок кода, предлагаемые в третьей версии манифеста. Для скриптов обработки контента представлена отдельная политика ограничения доступа к контенту (CSP, Content Security Policy).

puna: opennet.ru

Faaopoopo i ai se faamatalaga