Формат файла манифеста

Каждое расширение должно иметь файл manifest.json в корневом каталоге, в котором перечислена важная информация о структуре и поведении этого расширения. На этой странице объясняется структура манифестов расширений и функции, которые они могут включать.

Примеры

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

Минимальный манифест

{
  "manifest_version": 3,
  "name": "Minimal Manifest",
  "version": "1.0.0",
  "description": "A basic example extension with only required keys",
  "icons": {
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
}

Зарегистрируйте скрипт контента

{
  "manifest_version": 3,
  "name": "Run script automatically",
  "description": "Runs a script on www.example.com automatically when user installs the extension",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "content_scripts": [
    {
      "js": [
        "content-script.js"
      ],
      "matches": [
        "http://*.example.com//"
      ]
    }
  ]
}

Внедрить скрипт контента

{
  "manifest_version": 3,
  "name": "Click to run",
  "description": "Runs a script when the user clicks the action toolbar icon.",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "background": {
    "service_worker": "service-worker.js"
  },
  "action": {
    "default_icon": {
      "16": "images/icon-16.png",
      "32": "images/icon-32.png",
      "48": "images/icon-48.png",
      "128": "images/icon-128.png"
    }
  },
  "permissions": ["scripting", "activeTab"]
}
{
  "manifest_version": 3,
  "name": "Popup extension that requests permissions",
  "description": "Extension that includes a popup and requests host permissions and storage permissions .",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "action": {
    "default_popup": "popup.html"
  },
  "host_permissions": [
    "https://*.example.com/"
  ],
  "permissions": [
    "storage"
  ]
}

Боковая панель

{
  "manifest_version": 3,
  "name": "Side panel extension",
  "version": "1.0",
  "description": "Extension with a default side panel.",
  "icons": {
    "16": "images/icon-16.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "side_panel": {
    "default_path": "sidepanel.html"
  },
  "permissions": ["sidePanel"]
}

Ключи манифеста

Ниже приведен список всех поддерживаемых ключей манифеста.

Ключи, необходимые для платформы расширений

"manifest_version"
Целое число, указывающее версию формата файла манифеста, используемого вашим расширением. Единственное поддерживаемое значение — 3 .
"name"
Строка, идентифицирующая расширение в Интернет-магазине Chrome , диалоговом окне установки и на странице расширений Chrome пользователя ( chrome://extensions ). Максимальная длина — 75 символов. Информацию об использовании имен, зависящих от локали, см. в разделе Интернационализация .
"version"
Строка, идентифицирующая номер версии расширения. Информацию о форматировании номера версии см. в разделе Версия .

Ключи, необходимые для Интернет-магазина Chrome

"description"
Строка, описывающая расширение как в Интернет-магазине Chrome, так и на странице управления расширениями пользователя. Максимальная длина — 132 символа. Информацию о локализации описаний см. в разделе Интернационализация .
"icons"
Один или несколько значков, обозначающих ваше расширение. Информацию о передовом опыте см. в разделе Значки .

Дополнительные ключи

"action"
Определяет внешний вид и поведение значка расширения на панели инструментов Google. Дополнительную информацию см. в chrome.action .
"author"
Указывает адрес электронной почты учетной записи, которая использовалась для создания расширения.
"background"
Указывает файл JavaScript, содержащий сервис-воркер расширения, который действует как обработчик событий. Дополнительные сведения см. в разделе О работниках службы расширения .
"chrome_settings_overrides"
Определяет переопределения для выбранных настроек Chrome. Дополнительную информацию см. в разделе «Переопределение настроек Chrome» .
"chrome_url_overrides"
Определяет переопределения для страниц Chrome по умолчанию. Дополнительную информацию см. в разделе Переопределение страниц Chrome .
"commands"
Определяет сочетания клавиш внутри расширения. Дополнительную информацию см. в разделе chrome.commands .
"content_scripts"
Указывает файлы JavaScript или CSS, которые будут использоваться, когда пользователь открывает определенные веб-страницы. Дополнительные сведения см. в разделе Сценарии содержимого .
"content_security_policy"
Определяет ограничения на сценарии, стили и другие ресурсы, которые может использовать расширение. Дополнительную информацию см. в разделе Политика безопасности контента .
"cross_origin_embedder_policy"
Указывает значение HTTP-заголовка Cross-Origin-Embedder-Policy, который настраивает внедрение ресурсов из разных источников на страницу расширения.
"cross_origin_opener_policy"
Указывает значение для HTTP-заголовка Cross-Origin-Opener-Policy, которое позволяет гарантировать, что страница расширения верхнего уровня не использует общую группу контекста просмотра с документами из разных источников.
"declarative_net_request"
Определяет статические правила для API declarativeNetRequest , которые позволяют блокировать и изменять сетевые запросы.
"default_locale"
Строка, определяющая язык по умолчанию для расширения, поддерживающего несколько локалей. Примеры включают «en» и «pt_BR». Этот ключ необходим в локализованных расширениях и не должен использоваться в нелокализованных расширениях. Для получения дополнительной информации см. Интернационализация .
"devtools_page"
Определяет страницы, использующие API DevTools .
"export"
Позволяет экспортировать ресурсы из расширения. Для получения дополнительной информации см. Экспорт .
"externally_connectable"
Указывает, какие другие страницы и расширения могут подключаться к вашим расширениям. Для получения дополнительной информации см. "externally_connectable" .
"homepage_url"
Строка, определяющая URL-адрес домашней страницы расширения. Если это значение не определено, домашней страницей по умолчанию будет страница Интернет-магазина Chrome расширения. Это поле особенно полезно, если вы размещаете расширение на своем сайте.
"host_permissions"
Перечисляет веб-страницы, с которыми вашему расширению разрешено взаимодействовать, определяемые с использованием шаблонов соответствия URL-адресов. Разрешение пользователя для этих сайтов запрашивается во время установки. Дополнительную информацию см. в разделе Разрешения хоста .
"import"
Позволяет импортировать ресурсы в расширение. Для получения дополнительной информации см. Импорт .
"incognito"
Определяет, как расширение ведет себя в режиме инкогнито. Поддерживаемые значения: "spanning" , "split" и "not_allowed" . Дополнительную информацию см. в разделе Инкогнито .
"key"
Указывает идентификатор вашего расширения для различных вариантов использования при разработке. Для получения дополнительной информации см. Ключ .
"minimum_chrome_version"
Определяет самую старую версию Chrome, в которой можно установить ваше расширение. Значение должно быть подстрокой существующей строки версии браузера Chrome, например "107" или "107.0.5304.87" . Пользователи версий Chrome старше минимальной версии видят предупреждение «Несовместимо» в Интернет-магазине Chrome и не могут установить ваше расширение. Если вы добавите это к существующему расширению, пользователи Chrome с более старой версией не будут получать автоматические обновления вашего расширения. Сюда входят бизнес-пользователи в эфемерном режиме.
"oauth2"
Позволяет использовать идентификатор безопасности OAuth 2.0. Значением этого ключа должен быть объект со свойствами "client_id" и "scopes" . Подробности см. в руководстве по OAuth 2.0 .
"omnibox"
Позволяет расширению регистрировать ключевое слово в адресной строке Chrome. Для получения дополнительной информации см. Омнибокс .
"optional_host_permissions"
Объявляет дополнительные разрешения хоста для вашего расширения.
"optional_permissions"
Объявляет дополнительные разрешения для вашего расширения.
"options_page"
Указывает путь к файлу options.html, который расширение будет использовать в качестве страницы параметров. Дополнительные сведения см. в разделе Предоставление пользователям возможностей .
"options_ui"
Указывает путь к HTML-файлу, который позволяет пользователю изменять параметры расширения на странице расширений Chrome. Дополнительную информацию см. в разделе Встроенные параметры .
"permissions"
Позволяет использовать определенные API расширений. См. «Разрешения» для общего объяснения. На справочных страницах для отдельных API перечислены необходимые им разрешения.
"requirements"
Перечисляет технологии, необходимые для использования расширения. Список поддерживаемых требований см. в разделе Требования .
"sandbox"
Определяет набор страниц расширений, у которых нет доступа к API расширений или прямого доступа к страницам, не изолированным в изолированной программной среде. Дополнительные сведения см. в разделе «Песочница» .
"short_name"
Строка, содержащая сокращенную версию имени расширения, которая будет использоваться, когда пространство символов ограничено. Максимальная длина — 12 символов. Если это значение не определено, вместо этого отображается усеченная версия ключа «имя».
"side_panel"
Идентифицирует HTML-файл для отображения в боковой панели .
"storage"
Объявляет схему JSON для управляемой области хранения . Дополнительную информацию см. в разделе Манифест областей хранения .
"tts_engine"
Регистрирует расширение как механизм преобразования текста в речь. Для получения дополнительной информации см. API ttsEngine .
"update_url"
Строка, содержащая URL-адрес страницы обновлений расширения. Используйте этот ключ, если вы размещаете свое расширение за пределами Интернет-магазина Chrome.
"version_name"
Строка, описывающая версию расширения. Примеры включают "1.0 beta" и "build rc2" . Если это значение не указано, вместо этого на странице управления расширением отображается значение «версия».
"web_accessible_resources"
Определяет файлы внутри расширения, к которым могут получить доступ веб-страницы или другие расширения. Для получения дополнительной информации см. Доступные веб-ресурсы .

Дополнительные ключи ChromeOS

"file_browser_handlers"
Предоставляет доступ к API fileBrowserHandler , который позволяет расширениям получать доступ к файловому браузеру ChromeOS.
"file_handlers"
Указывает типы файлов, которые будут обрабатываться расширениями ChromeOS. Для получения дополнительной информации см. file_handlers .
"file_system_provider_capabilities"
Предоставляет доступ к API fileSystemProvider , который позволяет расширениям создавать файловые системы, которые может использовать ChromeOS.
"input_components"
Позволяет использовать API редактора метода ввода. Для получения дополнительной информации см. input_components .