manifest.json

В этой статье описан файл manifest.json для веб-расширений. Если Вы ищете информацию о manifest.json для Прогрессивных веб-приложений (PWAs), смотрите статью Манифест веб-приложения.

Файл manifest.json это единственный файл, который обязательно должен быть в каждом расширении, использующем API Веб-расширения (WebExtension APIs).

Используя manifest.json, Вы определяете базовые метаданные о расширении, такие как имя и версия. Также можно определить некоторые аспекты функционала (такие, как фоновые скрипты, контент скрипты и действия браузера).

Это файл в формате JSON, но в нём можно использовать комментарии, каждая строка которых должна начинаться с "//".

Список полей manifest.json

Поддерживаемые manifest.json поля перечислены ниже:

Примечания о полях manifest.json

  • Поля "manifest_version", "version" и "name" являются обязательными.
  • Поле "default_locale" обязательно, если есть папка "_locales", иначе его нужно опустить.
  • Поле "browser_specific_settings" не поддерживается Google Chrome.

Доступ к полям manifest.json во время выполнения

C помощью функции JavaScript runtime.getManifest() можно получить доступ к файлу манифеста расширения:

browser.runtime.getManifest().version;

Пример

В следующем блоке показан основной синтаксис некоторых часто используемых полей манифеста.

Примечание: Этот пример не рассчитан для того, чтобы его скопировали и вставили в файл реального проекта. Выбор нужных полей зависит от особенностей создаваемого расширения.

Если нужны примеры готовых расширений, смотрите Примеры расширений.

{
  "browser_specific_settings": {
    "gecko": {
      "id": "addon@example.com",
      "strict_min_version": "42.0"
    }
  },

  "background": {
    "scripts": ["jquery.js", "my-background.js"],
  },

  "browser_action": {
    "default_icon": {
      "19": "button/geo-19.png",
      "38": "button/geo-38.png"
    },
    "default_title": "Whereami?",
    "default_popup": "popup/geo.html"
  },

  "commands": {
    "toggle-feature": {
      "suggested_key": {
        "default": "Ctrl+Shift+Y",
        "linux": "Ctrl+Shift+U"
      },
      "description": "Send a 'toggle-feature' event"
    }
  },

  "content_security_policy": "script-src 'self' https://example.com; object-src 'self'",

  "content_scripts": [
    {
      "exclude_matches": ["*://developer.mozilla.org/*"],
      "matches": ["*://*.mozilla.org/*"],
      "js": ["borderify.js"]
    }
  ],

  "default_locale": "en",

  "description": "...",

  "icons": {
    "48": "icon.png",
    "96": "icon@2x.png"
  },

  "manifest_version": 2,

  "name": "...",

  "page_action": {
    "default_icon": {
      "19": "button/geo-19.png",
      "38": "button/geo-38.png"
    },
    "default_title": "Whereami?",
    "default_popup": "popup/geo.html"
  },

  "permissions": ["webNavigation"],

  "version": "0.1",

  "user_scripts": {
    "api_script": "apiscript.js",
  },

  "web_accessible_resources": ["images/my-image.png"]
}

Совместимость с браузерами

Для полного обзора всех полей манифеста и их содержимого, смотрите полную таблицу совместимости manifest.json с браузерами.

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariFirefox для Android
authorChrome Полная поддержка ДаEdge Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания This key is mandatory in Microsoft Edge.
Firefox Полная поддержка 52Opera Полная поддержка ДаSafari Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания Not displayed in Safari Extensions preferences.
Firefox Android Полная поддержка 52
backgroundChrome Полная поддержка ДаEdge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48
browser_actionChrome Полная поддержка Да
Замечания
Полная поддержка Да
Замечания
Замечания If an extension defines a browser action, it is not allowed to define a page action as well.
Edge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка Да
Замечания
Полная поддержка Да
Замечания
Замечания If an extension defines a browser action, it is not allowed to define a page action as well.
Safari Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания If an extension defines a browser action, it is not allowed to define a page action as well.
Firefox Android Полная поддержка 55
browser_specific_settingsChrome Нет поддержки НетEdge Нет поддержки 15 — 79Firefox Полная поддержка 48
Полная поддержка 48
Полная поддержка 42
Замечания Альтернативное имя
Замечания Mandatory before Firefox 48.
Альтернативное имя Использует нестандартное имя: applications
Opera Нет поддержки НетSafari Частичная поддержка 14
Замечания
Частичная поддержка 14
Замечания
Замечания Supports strict_min_version and strict_max_version in a safari block.
Firefox Android Полная поддержка 48
Полная поддержка 48
Полная поддержка 42
Замечания Альтернативное имя
Замечания Mandatory before Firefox 48.
Альтернативное имя Использует нестандартное имя: applications
chrome_settings_overridesChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Полная поддержка 55Opera Нет поддержки НетSafari Нет поддержки НетFirefox Android Нет поддержки Нет
chrome_url_overridesChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Полная поддержка 54Opera Нет поддержки НетSafari Нет поддержки НетFirefox Android Нет поддержки Нет
commandsChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания Ability to change the keyboard shortcut for a command not supported.
Firefox Android Нет поддержки Нет
content_scriptsChrome Полная поддержка Да
Замечания
Полная поддержка Да
Замечания
Замечания Content scripts are not applied to tabs already open when the extension is loaded.
Edge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка Да
Замечания
Полная поддержка Да
Замечания
Замечания Content scripts are not applied to tabs already open when the extension is loaded.
Safari Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания Content scripts are not applied to tabs until the user grants permission via the extension's access popover in the toolbar.
Firefox Android Полная поддержка 48
content_security_policyChrome Полная поддержка ДаEdge Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания Only the default content security policy is supported: "script-src 'self'; object-src 'self';".
Firefox Полная поддержка 48
Замечания
Полная поддержка 48
Замечания
Замечания Firefox does not support 'http://127.0.0.1' or 'http://localhost' as script sources: they must be served over HTTPS.
Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Нет поддержки Нет
default_localeChrome Полная поддержка ДаEdge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48
descriptionChrome Полная поддержка ДаEdge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48
developerChrome Нет поддержки НетEdge Нет поддержки НетFirefox Полная поддержка 52Opera Полная поддержка ДаSafari Нет поддержки НетFirefox Android Полная поддержка 52
devtools_pageChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Полная поддержка 54Opera Полная поддержка ДаSafari Нет поддержки НетFirefox Android Нет поддержки Нет
externally_connectableChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Нет поддержки Нет
Замечания
Нет поддержки Нет
Замечания
Замечания See bug 1319168.
Opera Полная поддержка ДаSafari Нет поддержки НетFirefox Android Нет поддержки Нет
homepage_urlChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания Not displayed in Safari Extensions preferences.
Firefox Android Полная поддержка 48
iconsChrome Полная поддержка Да
Замечания
Полная поддержка Да
Замечания
Замечания Chrome does not support SVG format for icons. It is recommended to use PNG images.
Edge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания SVG icons are not supported.
Firefox Android Полная поддержка 48
incognitoChrome Полная поддержка ДаEdge Полная поддержка ≤18Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Нет поддержки НетFirefox Android Полная поддержка 48
manifest_versionChrome Полная поддержка 4Edge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка 15Safari Полная поддержка 14Firefox Android Полная поддержка 48
nameChrome Полная поддержка ДаEdge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48
offline_enabledChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Нет поддержки НетOpera Полная поддержка ДаSafari Нет поддержки НетFirefox Android Нет поддержки Нет
omniboxChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Полная поддержка 52Opera Полная поддержка ДаSafari Нет поддержки НетFirefox Android Нет поддержки Нет
optional_permissionsChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Полная поддержка 55Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 55
options_page
Устаревшая
Chrome Полная поддержка ДаEdge Полная поддержка 14Firefox Нет поддержки НетOpera Полная поддержка 15Safari Полная поддержка 14Firefox Android Нет поддержки Нет
options_uiChrome Полная поддержка 40Edge Полная поддержка 79Firefox Полная поддержка 48Opera Полная поддержка 27Safari Полная поддержка 14Firefox Android Полная поддержка 57
page_actionChrome Полная поддержка Да
Замечания
Полная поддержка Да
Замечания
Замечания If an extension defines a page action, it is not allowed to define a browser action as well.
Полная поддержка 49
Замечания
Замечания Since Chrome 49, page actions are displayed on the toolbar, rather than in the address bar.
Edge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка Да
Замечания
Полная поддержка Да
Замечания
Замечания If an extension defines a page action, it is not allowed to define a browser action as well.
Safari Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания If an extension defines a page action, it is not allowed to define a browser action as well.
Firefox Android Полная поддержка Да
permissionsChrome Полная поддержка ДаEdge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48
protocol_handlersChrome Нет поддержки НетEdge Нет поддержки НетFirefox Полная поддержка 54Opera Нет поддержки НетSafari Нет поддержки НетFirefox Android Полная поддержка 54
short_nameChrome Полная поддержка ДаEdge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48
sidebar_actionChrome Нет поддержки НетEdge Нет поддержки НетFirefox Полная поддержка 54Opera Полная поддержка 30Safari Нет поддержки НетFirefox Android Нет поддержки Нет
storageChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Нет поддержки НетOpera Нет поддержки НетSafari Полная поддержка 14Firefox Android Нет поддержки Нет
themeChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Полная поддержка 55Opera Нет поддержки НетSafari Нет поддержки НетFirefox Android Полная поддержка Да
theme_experiment
ЭкспериментальнаяНестандартная
Chrome Нет поддержки НетEdge Нет поддержки НетFirefox Полная поддержка 63Opera Нет поддержки НетSafari Нет поддержки НетFirefox Android Нет поддержки Нет
user_scriptsChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Полная поддержка 68Opera Нет поддержки НетSafari Нет поддержки НетFirefox Android Полная поддержка 68
versionChrome Полная поддержка Да
Замечания
Полная поддержка Да
Замечания
Замечания Valid Chrome versions are a subset of valid Firefox versions.
Edge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48
version_nameChrome Полная поддержка ДаEdge Полная поддержка 79Firefox Нет поддержки НетOpera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Нет поддержки Нет
web_accessible_resourcesChrome Полная поддержка ДаEdge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48

Легенда

Полная поддержка  
Полная поддержка
Частичная поддержка  
Частичная поддержка
Нет поддержки  
Нет поддержки
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Нестандартная. Ожидается плохая кросс-браузерная поддержка.
Нестандартная. Ожидается плохая кросс-браузерная поддержка.
Устаревшая. Не следует использовать в новых веб-сайтах
Устаревшая. Не следует использовать в новых веб-сайтах
Смотрите замечания реализации.
Смотрите замечания реализации.
Использует нестандартное имя.
Использует нестандартное имя.

Смотрите также

permissions JavaScript API