Открыть сервис

Manifest V3

Manifest V3 — это третья версия спецификации манифеста для расширений браузеров на базе Chromium, определяющая структуру, права и доступные API для дополнений. Спецификация была представлена компанией Google в ноябре 2018 года как преемница Manifest V2 и стала обязательной для всех новых расширений в Chrome с января 2022 года. Основные изменения направлены на повышение безопасности, конфиденциальности и производительности браузера за счёт ограничения доступа расширений к веб-запросам и удалённому коду.

История

Разработка Manifest V3 началась на фоне критики экосистемы расширений Chrome, которая позволяла злоумышленникам использовать уязвимости через доступ к данным пользователей. Первый черновой вариант был опубликован в 2018 году, а в 2019 году Google объявила о планах поэтапного отказа от Manifest V2. В январе 2022 года новые расширения в Chrome Web Store должны были использовать только третью версию манифеста. В июне 2023 года компания анонсировала постепенное отключение поддержки Manifest V2 для существующих расширений, завершившееся в 2024–2025 годах. Другие браузеры на базе Chromium (Microsoft Edge, Opera, Brave, Vivaldi) также приняли Manifest V3, хотя часть из них сохранила ограниченную поддержку предыдущей версии.

Ключевые изменения

Service Worker вместо фоновых страниц

В Manifest V2 расширения использовали постоянные фоновые страницы, которые могли работать в фоновом режиме и потреблять ресурсы. В Manifest V3 они заменены на service worker — событийно-ориентированный скрипт, который запускается по мере необходимости и выгружается при бездействии. Это снижает потребление памяти, но накладывает ограничения на длительные фоновые задачи.

Права и разрешения

Спецификация ужесточила требования к запрашиваемым разрешениям. В частности, расширения должны указывать конкретные хосты, к которым им требуется доступ, вместо использования универсального права <all_urls>. Также введён механизм «опциональных разрешений», позволяющий запрашивать доступ к сайту только после явного действия пользователя.

Ограничение удалённого кода

Manifest V3 запрещает загрузку и выполнение внешнего JavaScript-кода, не включённого в пакет расширения. Это сделано для предотвращения атак через скомпрометированные серверы обновлений. Весь исполняемый код должен быть статически включён в файлы расширения.

API declarativeNetRequest

Вместо мощного, но опасного API webRequest (блокировка и модификация сетевых запросов), Manifest V3 предлагает API declarativeNetRequest. Он позволяет расширениям задавать декларативные правила фильтрации трафика, которые обрабатываются самим браузером, а не JavaScript-кодом. Лимит правил для одного расширения составляет 30 000 статических и 5 000 динамических правил, что вызвало критику со стороны разработчиков блокировщиков рекламы.

Критика и споры

Главными противниками Manifest V3 выступили разработчики блокировщиков рекламы и конфиденциальности, такие как uBlock Origin и AdGuard. Они утверждали, что ограничения declarativeNetRequest снижают эффективность фильтрации, особенно в отношении сложных скриптов и обхода блокировок. В ответ Google внесла ряд послаблений: увеличила лимит правил, добавила поддержку динамических правил и разрешила использование webRequest в режиме наблюдения (без модификации) для расширений с корпоративной лицензией.

Критики также указывали на то, что переход на service worker усложняет разработку расширений, использующих долгоживущие соединения (например, WebSocket). Некоторые браузеры, включая Firefox, приняли Manifest V3, но сохранили поддержку webRequest для блокировки запросов, что снижает негативное влияние изменений.

Влияние на экосистему

Manifest V3 стал стандартом де-факто для всех браузеров на базе Chromium, что фактически унифицировало разработку расширений. Для пользователей изменения означают повышение безопасности и стабильности браузера, однако функциональность некоторых расширений была сокращена. Наиболее заметным примером стало ограничение возможностей блокировщиков рекламы, что привело к появлению альтернативных решений, таких как uBlock Origin Lite, использующий декларативный подход.

Совместимость и будущее

По состоянию на 2025 год Manifest V3 поддерживается всеми основными браузерами на базе Chromium, а также Firefox (с некоторыми отличиями). Google продолжает развивать спецификацию, добавляя новые API и увеличивая лимиты. Полный отказ от Manifest V2 в Chrome завершился в 2025 году, что сделало третью версию единственным способом публикации расширений в Chrome Web Store.

Источники

  • Официальная документация Google Chrome Developers по Manifest V3.
  • Статья «Manifest V3» в Википедии (англ.).
  • Публикации и блоги разработчиков AdGuard и uBlock Origin о переходе на новую спецификацию.
  • Материалы конференции Chrome Dev Summit 2018–2023 годов.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →