Mozilla დაიწყებს დამატებების მიღებას Chrome-ის მანიფესტის მესამე ვერსიის საფუძველზე

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

Chrome manifest განსაზღვრავს შესაძლებლობებსა და რესურსებს, რომლებიც ხელმისაწვდომია გაფართოებებისთვის, რომლებიც დაწერილია WebExtensions API-ის გამოყენებით. 57-ე ვერსიით დაწყებული, Firefox მთლიანად გადაერთო WebExtensions API-ის გამოყენებაზე დანამატების შესაქმნელად და შეწყვიტა XUL ტექნოლოგიის მხარდაჭერა. WebExtensions-ზე გადასვლამ შესაძლებელი გახადა დანამატების განვითარების გაერთიანება Chrome, Opera, Safari და Edge პლატფორმებთან, გაამარტივა დანამატების პორტირება სხვადასხვა ვებ ბრაუზერებს შორის და შესაძლებელი გახადა მრავალპროცესის რეჟიმის სრულად გამოყენება. ოპერაცია (WebExtensions დანამატები შეიძლება შესრულდეს ცალკეულ პროცესებში, იზოლირებული ბრაუზერის დანარჩენი ნაწილისგან). სხვა ბრაუზერებთან დანამატების განვითარების გაერთიანებისთვის, Firefox უზრუნველყოფს თითქმის სრულ თავსებადობას Chrome manifest-ის მეორე ვერსიასთან.

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

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

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

  • დაემატა ახალი დეკლარაციული კონტენტის ფილტრაციის API, მაგრამ Chrome-ისგან განსხვავებით, webRequest API-ის ძველი დაბლოკვის რეჟიმის მხარდაჭერა არ შეწყვეტილა.
  • В манифесте определена замена фоновых страниц на вариант Service Workers, работающий в виде фоновых процессов (Background Service Workers). Для обеспечения совместимости в будущем в Firefox будет реализована поддержка Service Workers, но в настоящее время вместо них предложен новый механизм Event Pages, который более привычен для web-разработчиков, не требует полной переработки дополнений и устраняет ограничения, связанные с применением Service Workers. Event Pages позволит привести существующие дополнения с фоновыми страницами к требованиям третьей версии манифеста, сохранив при этом доступ ко всем возможностям, необходимым для работы с DOM.
  • ნებართვის მოთხოვნის ახალი მარცვლოვანი მოდელი - დანამატი ვერ გააქტიურდება ერთდროულად ყველა გვერდისთვის („all_urls“ ნებართვა წაშლილია), მაგრამ იმუშავებს მხოლოდ აქტიური ჩანართის კონტექსტში, ე.ი. მომხმარებელს უნდა დაადასტუროს, რომ დანამატი მუშაობს თითოეულ საიტზე. Firefox-ში, საიტის მონაცემებზე წვდომის ყველა მოთხოვნა ჩაითვლება არასავალდებულო, ხოლო წვდომის მინიჭების შესახებ საბოლოო გადაწყვეტილებას მიიღებს მომხმარებელი, რომელიც შეძლებს შერჩევით გადაწყვიტოს რომელ დანამატს მისცემს წვდომას კონკრეტულ საიტზე მის მონაცემებზე.

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

    Mozilla დაიწყებს დამატებების მიღებას Chrome-ის მანიფესტის მესამე ვერსიის საფუძველზე
  • ჯვარედინი წარმოშობის მოთხოვნების დამუშავების ცვლილება - ახალი მანიფესტის შესაბამისად, კონტენტის დამუშავების სკრიპტებს დაექვემდებარება იგივე ნებართვის შეზღუდვები, როგორც მთავარ გვერდზე, რომელშიც ეს სკრიპტებია ჩაშენებული (მაგალითად, თუ გვერდს არ აქვს წვდომა location API, მაშინ სკრიპტის დანამატები ასევე არ მიიღებენ ამ წვდომას). ეს ცვლილება სრულად არის დანერგილი Firefox-ში.
  • API на основе Promise. Firefox поддерживает данный API и для третьей версии манифеста перенесёт его в пространство имён «chrome.*».
  • Запрет выполнения кода, загруженного с внешних серверов (речь про ситуации, когда дополнение подгружает и выполняет внешний код). В Firefox применяется блокировка внешнего кода и разработчики Mozilla добавили дополнительные техники отслеживания загрузок кода, предлагаемые в третьей версии манифеста. Для скриптов обработки контента представлена отдельная политика ограничения доступа к контенту (CSP, Content Security Policy).

წყარო: opennet.ru

ახალი კომენტარის დამატება