Каждое расширение должно иметь файл 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 Web Store , диалоговом окне установки и на странице расширений Chrome пользователя (
chrome://extensions). Максимальная длина — 75 символов. Информацию об использовании имен, зависящих от локали, см. в разделе «Интернационализация» . -
"version" - Строка, указывающая номер версии расширения. Информацию о форматировании номера версии см. в разделе «Версия» .
Для работы Chrome Web Store требуются следующие ключи
-
"description" - Строка, описывающая расширение как в Chrome Web Store, так и на странице управления расширениями пользователя. Максимальная длина — 132 символа. Информацию о локализации описаний см. в разделе «Интернационализация» .
-
"icons" - Один или несколько значков, представляющих ваше расширение. Информацию о рекомендуемых методах см. в разделе «Значки» .
Дополнительные ключи
-
"action" - Определяет внешний вид и поведение значка расширения на панели инструментов Google. Для получения дополнительной информации см.
chrome.action. -
"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 инструментов разработчика .
-
"export" - Позволяет экспортировать ресурсы из расширения. Для получения дополнительной информации см. раздел «Экспорт» .
-
"externally_connectable" - Указывает, какие другие страницы и расширения могут подключаться к вашим расширениям. Для получения дополнительной информации см.
"externally_connectable". -
"homepage_url" - Строка, указывающая URL-адрес домашней страницы расширения. Если этот параметр не определен, по умолчанию отображается страница расширения в Chrome Web Store. Это поле особенно полезно, если вы размещаете расширение на собственном сайте.
-
"host_permissions" - В этом списке перечислены веб-страницы, с которыми вашему расширению разрешено взаимодействовать, определенные с помощью шаблонов соответствия URL-адресов. Разрешение пользователя на доступ к этим сайтам запрашивается во время установки. Для получения дополнительной информации см. раздел «Разрешения хоста» .
-
"import" - Позволяет импортировать ресурсы в расширение. Для получения дополнительной информации см. раздел «Импорт» .
-
"incognito" - Определяет поведение расширения в режиме инкогнито. Поддерживаемые значения:
"spanning","split"и"not_allowed". Дополнительную информацию см. в разделе "Режим инкогнито ". -
"key" - Указывает идентификатор вашего расширения для различных сценариев разработки. Для получения дополнительной информации см. раздел «Ключ» .
-
"minimum_chrome_version" - Определяет самую старую версию Chrome, на которую можно установить ваше расширение. Значение должно быть подстрокой существующей строки версии браузера Chrome, например,
"107"или"107.0.5304.87". Пользователи с версиями Chrome старше минимальной версии видят предупреждение "Несовместимо" в Chrome Web Store и не могут установить ваше расширение. Если вы добавите это к существующему расширению, пользователи с более старой версией Chrome не будут получать автоматические обновления вашего расширения. Это касается и корпоративных пользователей в эфемерном режиме. -
"oauth2" - Позволяет использовать идентификатор безопасности OAuth 2.0. Значение этого ключа должно быть объектом со свойствами
"client_id"и"scopes". Подробнее см. руководство по OAuth 2.0 . -
"omnibox" - Позволяет расширению зарегистрировать ключевое слово в адресной строке Chrome. Для получения дополнительной информации см. Omnibox .
-
"optional_host_permissions" - Указывает необязательные права доступа для вашего расширения.
-
"optional_permissions" - Указывает необязательные разрешения для вашего расширения.
-
"options_page" - Указывает путь к файлу options.html, который расширение будет использовать в качестве страницы настроек. Для получения дополнительной информации см. раздел «Предоставление пользователям настроек» .
-
"options_ui" - Указывает путь к HTML-файлу, позволяющему пользователю изменять параметры расширения на странице расширений Chrome. Дополнительную информацию см. в разделе «Встроенные параметры» .
-
"permissions" - Позволяет использовать определенные API расширений. Общее объяснение см. в разделе «Разрешения» . На страницах справочника для отдельных API указаны необходимые для их использования разрешения.
-
"requirements" - В этом разделе перечислены технологии, необходимые для использования расширения. Список поддерживаемых технологий см. в разделе «Требования» .
-
"sandbox" - Определяет набор страниц расширений, которые не имеют доступа к API расширений или прямого доступа к страницам, не находящимся в песочнице. Для получения дополнительной информации см. раздел «Песочница» .
-
"short_name" - Строка, содержащая сокращенную версию имени расширения, используемую при ограниченном количестве символов. Максимальная длина — 12 символов. Если это значение не определено, вместо него отображается усеченная версия ключа "name".
-
"side_panel" - Указывает HTML-файл для отображения в боковой панели .
-
"storage" - Объявляет JSON-схему для управляемой области хранения . Для получения дополнительной информации см. Манифест для областей хранения .
-
"tts_engine" - Регистрирует расширение в качестве механизма преобразования текста в речь. Для получения дополнительной информации см. API ttsEngine .
-
"update_url" - Строка, содержащая URL-адрес страницы обновлений расширения. Используйте этот ключ, если ваше расширение размещено вне Chrome Web Store.
-
"version_name" - Строка, описывающая версию расширения. Примеры:
"1.0 beta"и"build rc2". Если версия не указана, вместо неё на странице управления расширением отображается значение "version". -
"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.