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

Каждое расширение должно иметь файл 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 .