Saltar al contenido principal

Chrome Extension Support

Electron supports a subset of the Chrome Extensions API, primarily to support DevTools extensions and Chromium-internal extensions, but it also happens to support some other extension capabilities.

Nota: Electron no soporta extensiones arbitrarias de Chrome desde tienda, y no es un objetivo del proyecto Electron ser perfectamente compatible con las implementaciones de extensiones de Chrome.

Cargar extensiones

Electron solo soporta carga de extensiones desempaquetadas (por ejemplo, los archivos .crx no funcionan). Las extensiones se instalan por -session. Para cargar una extensión, llame a ses.loadExtension:

const { session } = require('electron')

session.defaultSession.loadExtension('path/to/unpacked/extension').then(({ id }) => {
// ...
})

Las extensiones cargadas no serán automáticamente recordadas entre salidas; si no se llama loadExtension cuando se ejecuta la aplicación, la extensión no se cargará.

Tenga en cuenta que la carga de extensiones solo es soportada en sesiones persistentes. Intentar cargar una extensión en una sesión en memoria arrojará un error.

Consulta la documentación de session para más información sobre carga, descarga y consulta sobre extensiones activas.

APIs de Extensiones Soportadas

Soportamos las siguientes APIs de extensiones, con algunas advertencias. Otras APIs pueden ser soportadas adicionalmente, pero el soporte para cualquier API no listada aquí es provisional y puede ser eliminado.

Supported Manifest Keys

  • name (nombre)
  • version
  • author (autor)
  • permisos
  • content_scripts
  • default_locale
  • devtools_page
  • short_name
  • host_permissions (Manifest V3)
  • manifest_version
  • background (Manifest V2)
  • minimum_chrome_version

See Manifest file format for more information about the purpose of each possible key.

chrome.devtools.inspectedWindow

Todas las características de esta API son compatibles.

See official documentation for more information.

chrome.devtools.network

Todas las características de esta API son compatibles.

See official documentation for more information.

chrome.devtools.panels

Todas las características de esta API son compatibles.

See official documentation for more information.

chrome.extension

Se admiten las siguientes propiedades de chrome.extension :

  • chrome.extension.lastError

Los siguientes métodos de chrome.extension son soportados:

  • chrome.extension.getURL
  • chrome.extension.getBackgroundPage

See official documentation for more information.

chrome.management

Los siguientes métodos de chrome.management son soportados:

  • chrome.management.getAll
  • chrome.management.get
  • chrome.management.getSelf
  • chrome.management.getPermissionWarningsById
  • chrome.management.getPermissionWarningsByManifest

Los siguientes eventos de chrome.management están soportados:

  • chrome.management.onEnabled
  • chrome.management.onDisabled

See official documentation for more information.

chrome.runtime

Las siguientes propiedades de chrome.runtime son soportadas:

  • chrome.runtime.lastError
  • chrome.runtime.id

Los siguientes métodos de chrome.runtime son soportados:

  • chrome.runtime.getBackgroundPage
  • chrome.runtime.getManifest
  • chrome.runtime.getPlatformInfo
  • chrome.runtime.getURL
  • chrome.runtime.connect
  • chrome.runtime.sendMessage
  • chrome.runtime.reload

Los siguientes eventos de chrome.runtime están soportados:

  • chrome.runtime.onStartup
  • chrome.runtime.onInstalled
  • chrome.runtime.onSuspend
  • chrome.runtime.onSuspendCanceled
  • chrome.runtime.onConnect
  • chrome.runtime.onMessage

See official documentation for more information.

chrome.scripting

Todas las características de esta API son compatibles.

See official documentation for more information.

chrome.storage

Los siguientes métodos de chrome.storage son soportados:

  • chrome.storage.local

chrome.storage.sync and chrome.storage.managed are not supported.

See official documentation for more information.

chrome.tabs

Los siguientes métodos de chrome.tabs son soportados:

  • chrome.tabs.sendMessage
  • chrome.tabs.reload
  • chrome.tabs.executeScript
  • chrome.tabs.query (soporte parcial)
    • supported properties: url, title, audible, active, muted.
  • chrome.tabs.update (soporte parcial)
    • propiedades soportadas: url, muted.

Nota: En Chrome, pasando -1 como ID de la pestaña significa "la pestaña actualmente activa". Dado que Electron no tiene tal concepto, pasar -1 como un ID de pestaña no está soportado y lanzara un error.

See official documentation for more information.

chrome.webRequest

Todas las características de esta API son compatibles.

NOTA: El módulo webRequest de Electron tiene precedencia sobre chrome.webRequest si hay manejadores en conflicto.

See official documentation for more information.