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