Переход на манифест V3

Руководство по преобразованию расширений Manifest V2 в расширения Manifest V3.

В этом разделе вы сможете обновить расширение с Manifest V2 до Manifest V3, новейшей версии платформы расширений Chrome. Процесс миграции условно делится на следующие категории. Для удобства отслеживания прогресса мы подготовили контрольный список , summarizing содержание этих документов. Вы можете получить доступ к содержимому с помощью контрольного списка или изучить его более подробно. Оба варианта завершаются обновлением расширения.

  • Обновите манифестmanifest.json должен соответствовать версии V3. Изменения, которые можно внести отдельно, описаны в этом разделе. Изменения манифеста, касающиеся кода, описаны вместе с изменениями кода, которые они поддерживают.
  • Переход на сервис-воркер — Сервис-воркер заменяет фоновую страницу или страницу событий расширения, чтобы гарантировать, что фоновый код не будет работать в основном потоке, где он может негативно влиять на производительность. Это изменение также требует перемещения DOM, окна и некоторых вызовов API расширения в документы, находящиеся вне экрана.
  • Обновление вызовов API — Некоторые вызовы API необходимо заменить более современными аналогами.
  • Замена обработчиков блокирующих веб-запросов — Блокировка или изменение сетевых запросов в Manifest V2 может значительно ухудшить производительность и потребовать чрезмерного доступа к конфиденциальным пользовательским данным. Декларативный API сетевых запросов позволяет расширениям блокировать или изменять веб-контент с меньшим количеством разрешений и без ущерба для производительности.
  • Улучшена безопасность расширений — Manifest V3 улучшает безопасность расширений несколькими способами. Помимо улучшенной политики безопасности контента, удалена поддержка удаленно размещенного кода и выполнения произвольных строк.
  • Опубликуйте свое расширение — В этом разделе описывается, как поэтапно выпускать расширение Manifest V3, чтобы убедиться в его корректной работе, предварительно протестировав его на ограниченной аудитории.

У нас также есть конвертер манифестов расширений . Он не сделает всё за вас, но поможет вам начать работу. В файле README конвертера описано, что именно изменяет инструмент.

Сохраните текущий набор функций.

Чтобы снизить вероятность непредвиденных проблем или ошибок, мы рекомендуем не добавлять новые функции при миграции. Например, добавление функции, требующей новых разрешений, может вызвать предупреждение о разрешении , которое отключит ваше расширение до тех пор, пока пользователь не примет новые разрешения. См. раздел «Рекомендации по предупреждению о разрешениях », чтобы узнать о других способах добавления разрешений без отображения предупреждения.

Манифест V3 обычно поддерживается в Chrome версии 88 и выше. При обновлении вызовов API вы можете обнаружить, что заменяющие функции могли появиться в Chrome только после версии 88. На страницах справочника API содержится информация о поддержке отдельных членов API. Если вы обнаружите, что вам необходима одна из этих функций, вы можете указать минимальную версию Chrome в файле манифеста.

Новые функции платформы расширений

С момента выхода Manifest V3 мы продолжаем добавлять новые функции , многие из которых можно использовать как в Manifest V2, так и в Manifest V3. Использовать их при конвертации не обязательно; однако, если они заменяют старые функции, следует отдавать им предпочтение перед заменяемыми функциями и ожидать, что замененные функции со временем будут устаревшими и удалены.