Formato de archivo de manifiesto

Cada extensión debe tener un archivo manifest.json en su directorio raíz que enumera 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 extensiones y las funciones que pueden incluir.

Ejemplos

Los siguientes ejemplos de manifiestos muestran la estructura básica de manifiestos y algunas funciones de uso general 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//"
      ]
    }
  ]
}

Cómo insertar un guion 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"]
}
{
  "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 compatibles.

Claves requeridas por la plataforma de Extensiones

"manifest_version"
Es un número entero que especifica la versión del formato de archivo de manifiesto que que usa la extensión. El único valor admitido es 3.
"name"
Una cadena que identifica la extensión en la sección Chrome Web Store, el diálogo de instalación y la página Extensiones de Chrome del usuario (chrome://extensions). El 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"
Es una cadena que identifica el número de versión de la extensión. Para obtener información sobre Formato de 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 la del usuario página de administración de extensiones. La longitud máxima es de 132 caracteres. Información Para localizar descripciones, consulta Internacionalización.
"icons"
Uno o más íconos que representan tu extensión Para obtener información sobre la mejor consulta Íconos.

Claves opcionales

"action"
Define la apariencia y el comportamiento del ícono de la extensión en la app de Google Barra de herramientas. Para obtener más información, consulta chrome.action.
"author"
Especifica la dirección de correo electrónico de la cuenta que se utilizó para crear la .
"background"
Especifica el archivo JavaScript que contiene el service worker de la extensión, que actúa como un controlador de eventos. Para obtener más información, consulta el artículo Acerca del servicio de extensiones. trabajadores
"chrome_settings_overrides"
Define las anulaciones para la configuración seleccionada de Chrome. Para obtener más información, consulta Anular la configuración de Chrome.
"chrome_url_overrides"
Define las anulaciones para las páginas predeterminadas de Chrome. Para obtener más información, consulta Anular las páginas de Chrome.
"commands"
Define las combinaciones de teclas de la extensión. Para ver más consulta chrome.commands.
"content_scripts"
Especifica los archivos JavaScript o CSS que se usarán cuando el usuario abra determinadas páginas web. páginas. Para obtener más información, consulta Secuencias de comandos de contenido.
"content_security_policy"
Define las restricciones de las secuencias de comandos, los estilos y otros recursos que incluye una extensión. que puedes usar. Para obtener más información, consulta la Política de Seguridad del Contenido.
"cross_origin_embedder_policy"
Especifica un valor para el encabezado HTTP de política de incorporaciones de origen cruzado, el cual 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 permite se asegura de que la página de la extensión de nivel superior no comparta el contexto de navegación con documentos de origen cruzado.
"declarative_net_request"
Define las reglas estáticas para la declarativeNetRequest. API, que permite el bloqueo y la modificación de solicitudes de red.
"default_locale"
Una cadena que define el idioma predeterminado de una extensión que admite varias configuraciones regionales. Por ejemplo, la palabra “en” y "pt_BR". Se requiere esta clave en extensiones localizadas y no debe utilizarse en 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 la exportación de recursos desde la extensión. Para obtener más información, consulta Exportar.
"externally_connectable"
Especifica qué otras páginas y extensiones pueden conectarse a tus extensiones. Para Para obtener más información, consulta "externally_connectable".
"homepage_url"
Es una cadena que especifica una URL para la página principal de la extensión. Si no está definido, la página principal muestra de manera predeterminada la página de Chrome Web Store de la extensión. Este campo es es particularmente ú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, definida usando Patrones de coincidencia de URL. Se solicita permiso del usuario para estos sitios al momento de la instalación tiempo. Para obtener más información, consulta Permisos del host.
"import"
Permite que se importen recursos en 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. Valores admitidos: "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 ver más consulta Clave.
"minimum_chrome_version"
Define la versión de Chrome más antigua 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ás el mensaje "No compatible" en Chrome Web Store y se muestran no se puede instalar tu extensión. Si la agregas a una extensión existente, Los usuarios cuya versión de Chrome sea anterior no recibirán actualizaciones automáticas en tu . Esto incluye a los usuarios empresariales 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 propiedades "client_id" y "scopes". Para obtener más información, consulta la documentación sobre los recursos Instructivo 2.0.
"omnibox"
Permite que la extensión registre una palabra clave en la barra de direcciones de Chrome. Para ver más consulta Cuadro multifunción.
"optional_host_permissions"
Declara un host opcional. permisos 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 archivo de Google Cloud. Para obtener más información, consulta Dar a los usuarios Opciones.
"options_ui"
Especifica una ruta de acceso a un archivo HTML que le permite al usuario cambiar las opciones de la extensión. desde la página Extensiones de Chrome. Para obtener más información, consulta Incorporación Opciones.
"permissions"
Habilita el uso de determinadas APIs de extensión. Consulta Permisos. para obtener una explicación general. En las páginas de referencia para APIs individuales, se enumeran los permisos que requieren.
"requirements"
Enumera las tecnologías necesarias para usar la extensión. Para obtener una lista de los servicios consulta Requisitos.
"sandbox"
Define un conjunto de páginas de extensiones que no tienen acceso a las APIs de extensiones o acceso directo a páginas que no están protegidas por la 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 es limitado. La longitud máxima es de 12 caracteres. Si este es el caso indefinido, una versión truncada del "nombre" en su lugar.
"side_panel"
Identifica un archivo HTML para mostrar en una sidePanel.
"storage"
Declara un esquema JSON para el almacenamiento administrado. determinada. Para ver más consulta el Manifiesto de las áreas de almacenamiento.
"tts_engine"
Registra la extensión como un motor de texto a voz. Para obtener más información, consulta la API de ttsEngine.
"update_url"
Es una cadena que contiene la URL de la página de actualizaciones de la extensión. Usa esta clave si estás alojando tu extensión. fuera de Chrome Web Store.
"version_name"
Es una cadena que describe la versión de la extensión. Los ejemplos incluyen "1.0 beta" y "build rc2" Si no se especifica, la “versión” el valor se muestra en la de administración de extensiones.
"web_accessible_resources"
Define los archivos dentro de la extensión a los que se puede acceder desde páginas web u otros extensiones. Para obtener más información, consulta Acceso a la Web Recursos.

Claves opcionales de ChromeOS

"file_browser_handlers"
Proporciona acceso a fileBrowserHandler. API, que permite que las extensiones accedan al navegador de archivos de ChromeOS.
"file_handlers"
Especifica los tipos de archivos que deben administrar las extensiones de ChromeOS. Para obtener más información, consulta los siguientes artículos:file_handlers.
"file_system_provider_capabilities"
Permite el acceso a los fileSystemProvider API, que permite que las extensiones creen sistemas de archivos que ChromeOS puede usar.
"input_components"
Permite el uso de la API de Input Method Editor. Para obtener más información, consulta input_components.