Cada extensión debe tener un archivo manifest.json en su directorio raíz que enumere información importante sobre la estructura y el comportamiento de esa extensión.
En esta página, se explica la estructura de los manifiestos de extensión y las funciones que pueden incluir.
Ejemplos
En los siguientes manifiestos de ejemplo, se muestra la estructura básica del manifiesto y algunas funciones de uso frecuente como punto de partida para crear tu propio manifiesto:
Manifiesto mínimo
{
"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"
}
}
Registra una secuencia de comandos de contenido
{
"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//"
]
}
]
}
Inyecta una secuencia de comandos de contenido
{
"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"]
}
Ventana emergente con permisos
{
"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"
]
}
Panel lateral
{
"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"]
}
Claves del manifiesto
A continuación, se incluye una lista de todas las claves de manifiesto admitidas.
Claves requeridas por la plataforma de extensiones
"manifest_version"- Un número entero que especifica la versión del formato de archivo de manifiesto que usa tu extensión. El único valor admitido es
3. "name"- Una cadena que identifica la extensión en Chrome Web Store, el diálogo de instalación y la página de extensiones de Chrome del usuario (
chrome://extensions). La longitud máxima es de 75 caracteres. Para obtener información sobre el uso de nombres específicos de la configuración regional,
consulta Internacionalización.
"version"- Una cadena que identifica el número de versión de la extensión. Para obtener información sobre el formato del número de versión, consulta Versión.
Claves requeridas por Chrome Web Store
"description"- Una cadena que describe la extensión en Chrome Web Store y en la página de administración de extensiones del usuario. La longitud máxima es de 132 caracteres. Para obtener información sobre la localización de descripciones, consulta Internacionalización.
"icons"- Uno o más íconos que representan tu extensión. Para obtener información sobre las prácticas recomendadas, consulta Icons.
Claves opcionales
"action"- Define la apariencia y el comportamiento del ícono de la extensión en la barra de herramientas de Google. Para obtener más información, consulta
chrome.action. "background"- Especifica el archivo JavaScript que contiene el service worker de la extensión, que actúa como controlador de eventos. Para obtener más información, consulta Acerca de los service workers de extensión.
"chrome_settings_overrides"- Define anulaciones para la configuración seleccionada de Chrome. Para obtener más información, consulta Cómo anular la configuración de Chrome.
"chrome_url_overrides"- Define anulaciones para las páginas predeterminadas de Chrome. Para obtener más información, consulta Cómo anular páginas de Chrome.
"commands"- Define combinaciones de teclas dentro de la extensión. Para obtener más información, consulta chrome.commands.
"content_scripts"- Especifica los archivos JavaScript o CSS que se usarán cuando el usuario abra ciertas páginas web. Para obtener más información, consulta Secuencias de comandos de contenido.
"content_security_policy"- Define restricciones sobre las secuencias de comandos, los estilos y otros recursos que puede usar una extensión. Para obtener más información, consulta Política de seguridad del contenido.
"cross_origin_embedder_policy"- Especifica un valor para el encabezado HTTP Cross-Origin-Embedder-Policy, que configura la incorporación de recursos de origen cruzado en una página de extensión.
"cross_origin_opener_policy"- Especifica un valor para el encabezado HTTP Cross-Origin-Opener-Policy, que te permite asegurarte de que una página de extensión de nivel superior no comparta un grupo de contexto de navegación con documentos de origen cruzado.
"declarative_net_request"- Define reglas estáticas para la API de declarativeNetRequest, que permite bloquear y modificar solicitudes de red.
"default_locale"- Una cadena que define el idioma predeterminado de una extensión que admite varias configuraciones regionales. Algunos ejemplos son "en" y "pt_BR". Esta clave es obligatoria en las extensiones localizadas y no se debe usar en las extensiones que no están localizadas. Para obtener más información, consulta Internacionalización.
"devtools_page"- Define las páginas que usan las APIs de DevTools.
"export"- Permite exportar recursos desde la extensión. Para obtener más información, consulta Exportar.
"externally_connectable"- Especifica a qué otras páginas y extensiones se pueden conectar tus extensiones. Para
obtener más información, consulta
"externally_connectable". "homepage_url"- Una cadena que especifica una URL para la página principal de la extensión. Si no se define, la página principal se establece de forma predeterminada en la página de Chrome Web Store de la extensión. Este campo es especialmente útil si alojas la extensión en tu propio sitio.
"host_permissions"- Enumera las páginas web con las que tu extensión puede interactuar, definidas con patrones de coincidencia de URL. El permiso del usuario para estos sitios se solicita durante la instalación. Para obtener más información, consulta Permisos del host.
"import"- Permite importar recursos a la extensión. Para obtener más información, consulta Importar.
"incognito"- Define cómo se comporta la extensión en el modo Incógnito. Los valores admitidos son
"spanning","split"y"not_allowed". Para obtener más información, consulta Incógnito. "key"- Especifica el ID de tu extensión para varios casos de uso de desarrollo. Para obtener más información, consulta Clave.
"minimum_chrome_version"- Define la versión más antigua de Chrome que puede instalar tu extensión. El valor
debe ser una subcadena de una cadena de versión del navegador Chrome existente, como
"107"o"107.0.5304.87". Los usuarios con versiones de Chrome anteriores a la versión mínima verán una advertencia de "No compatible" en Chrome Web Store y no podrán instalar tu extensión. Si agregas esto a una extensión existente, los usuarios cuya versión de Chrome sea anterior no recibirán actualizaciones automáticas de tu extensión. Esto incluye a los usuarios empresariales en modo efímero. "oauth2"- Permite el uso de un ID de seguridad de OAuth 2.0. El valor de esta clave debe ser un
objeto con
"client_id"y"scopes"propiedades. Para obtener más información, consulta el instructivo de OAuth 2.0. "omnibox"- Permite que la extensión registre una palabra clave en la barra de direcciones de Chrome. Para obtener más información, consulta Omnibox.
"optional_host_permissions"- Declara permisos de host opcionales para tu extensión.
"optional_permissions"- Declara permisos opcionales para tu extensión.
"options_page"- Especifica una ruta de acceso a un archivo options.html para que la extensión la use como página de opciones. Para obtener más información, consulta Ofrece opciones a los usuarios.
"options_ui"- Especifica una ruta de acceso a un archivo HTML que permite que un usuario cambie las opciones de extensión desde la página de extensiones de Chrome. Para obtener más información, consulta Opciones incorporadas.
"permissions"- Permite el uso de APIs de extensión específicas. Consulta Permisos para obtener una explicación general. Las páginas de referencia de las APIs individuales enumeran los permisos que requieren.
"requirements"- Enumera las tecnologías necesarias para usar la extensión. Para obtener una lista de los requisitos admitidos, consulta Requisitos.
"sandbox"- Define un conjunto de páginas de extensión que no tienen acceso a las APIs de extensión ni acceso directo a páginas que no están en zona de pruebas. Para obtener más información, consulta Zona de pruebas.
"short_name"- Una cadena que contiene una versión abreviada del nombre de la extensión que se usará cuando el espacio de caracteres sea limitado. La longitud máxima es de 12 caracteres. Si no se define, se muestra una versión truncada de la clave "name".
"side_panel"- Identifica un archivo HTML para mostrar en un sidePanel.
"storage"- Declara un esquema JSON para el área de almacenamiento administrada. Para obtener más información, consulta Manifiesto para áreas de almacenamiento.
"tts_engine"- Registra la extensión como un motor de texto a voz. Para obtener más información, consulta la ttsEngine.
"update_url"- Una cadena que contiene la URL de la página de actualizaciones de la extensión. Usa esta clave si alojas tu extensión fuera de Chrome Web Store.
"version_name"- Una cadena que describe la versión de la extensión. Algunos ejemplos son
"1.0 beta"y"build rc2". Si no se especifica, el valor "version" se muestra en la página de administración de extensiones. "web_accessible_resources"- Define los archivos dentro de la extensión a los que pueden acceder las páginas web o las otras extensiones. Para obtener más información, consulta Recursos accesibles desde la Web.
Claves opcionales de ChromeOS
"file_browser_handlers"- Proporciona acceso a la
fileBrowserHandlerAPI, que permite que las extensiones accedan al navegador de archivos de ChromeOS. "file_handlers"- Especifica los tipos de archivos que deben controlar las extensiones de ChromeOS. Para obtener más información,
consulta
file_handlers. "file_system_provider_capabilities"- Permite el acceso a la
fileSystemProviderAPI, que permite que las extensiones creen sistemas de archivos que ChromeOS puede usar. "input_components"- Permite el uso de la API del editor de métodos de entrada. Para obtener más información, consulta
input_components.