Firefox-მა Chrome manifest-ის მესამე ვერსიის ტესტირება დაიწყო

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

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

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

მანიფესტის მესამე ვერსიის მთავარი უკმაყოფილება დაკავშირებულია webRequest API-ის მხოლოდ წაკითხვის რეჟიმში თარგმნასთან, რამაც შესაძლებელი გახადა თქვენივე დამმუშავებლების დაკავშირება, რომლებსაც აქვთ სრული წვდომა ქსელის მოთხოვნებზე და შეუძლიათ შეცვალონ ტრაფიკი ფრენის დროს. ეს API გამოიყენება uBlock Origin-ში და ბევრ სხვა დანამატში შეუსაბამო შინაარსის დასაბლოკად და უსაფრთხოების უზრუნველსაყოფად. webRequest API-ის ნაცვლად, manifest-ის მესამე ვერსია გთავაზობთ შეზღუდული შესაძლებლობების დეკლარაციულ NetRequest API-ს, რომელიც უზრუნველყოფს წვდომას ჩაშენებულ ფილტრაციის ძრავზე, რომელიც დამოუკიდებლად ამუშავებს დაბლოკვის წესებს, არ იძლევა საკუთარი ფილტრაციის ალგორითმების გამოყენებას და არ იძლევა საშუალებას იძლევა დაწესდეს რთული წესები, რომლებიც ერთმანეთს ემთხვევა პირობებიდან გამომდინარე.

В предложенной в Firefox реализации третьей версии манифеста добавили новый декларативный API фильтрации контента, но в отличие от Chrome не стали прекращать поддержку старого блокирующего режима работы API webRequest. Среди других особенностей реализации нового манифеста в Firefox:

  • В манифесте определена замена фоновых страниц на вариант Service Workers, работающий в виде фоновых процессов (Background Service Workers). Для обеспечения совместимости в Firefox будет реализовано данное требование, но дополнительно предложен новый механизм Event Pages, который более привычен для web-разработчиков, не требует полной переработки дополнений и устраняет ограничения, связанные с применением Service Workers. Event Pages позволит привести существующие дополнения с фоновыми страницами к требованиям третьей версии манифеста, сохранив при этом доступ ко всем возможностям, необходимым для работы с DOM. В доступной для тестирования в Firefox реализации манифеста пока поддерживаются только Event Pages, а поддержку решения на базе Service Workers обещают добавить позднее. Предложение поддержала компания Apple и реализовала Event Pages в выпуске Safari Technology Preview 136.
  • ნებართვის მოთხოვნის ახალი მარცვლოვანი მოდელი - დანამატი ვერ გააქტიურდება ერთდროულად ყველა გვერდისთვის („all_urls“ ნებართვა წაშლილია), მაგრამ იმუშავებს მხოლოდ აქტიური ჩანართის კონტექსტში, ე.ი. მომხმარებელს უნდა დაადასტუროს, რომ დანამატი მუშაობს თითოეულ საიტზე. Firefox-ში, საიტის მონაცემებზე წვდომის ყველა მოთხოვნა ჩაითვლება არასავალდებულო, ხოლო წვდომის მინიჭების შესახებ საბოლოო გადაწყვეტილებას მიიღებს მომხმარებელი, რომელიც შეძლებს შერჩევით გადაწყვიტოს რომელ დანამატს მისცემს წვდომას კონკრეტულ საიტზე მის მონაცემებზე.
  • ჯვარედინი წარმოშობის მოთხოვნების დამუშავების ცვლილება - ახალი მანიფესტის შესაბამისად, კონტენტის დამუშავების სკრიპტებს დაექვემდებარება იგივე ნებართვის შეზღუდვები, როგორც მთავარ გვერდზე, რომელშიც ეს სკრიპტებია ჩაშენებული (მაგალითად, თუ გვერდს არ აქვს წვდომა location API, მაშინ სკრიპტის დანამატები ასევე არ მიიღებენ ამ წვდომას). ეს ცვლილება სრულად არის დანერგილი Firefox-ში.
  • API на основе Promise. Firefox уже поддерживает данный API и для третьей версии манифеста перенесёт его в пространство имён «chrome.*».
  • Запрет выполнения кода, загруженного с внешних серверов (речь про ситуации, когда дополнение подгружает и выполняет внешний код). В Firefox уже применяется блокировка внешнего кода и разработчики Mozilla добавили дополнительные техники отслеживания загрузок кода, предлагаемые в третьей версии манифеста. Для скриптов обработки контента представлена отдельная политика ограничения доступа к контенту (CSP, Content Security Policy).

წყარო: opennet.ru

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