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