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.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.

chrome.devtools.inspectedWindow

Todas las características de esta API son compatibles.

chrome.devtools.network

Todas las características de esta API son compatibles.

chrome.devtools.panels

Todas las características de esta API son compatibles.

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

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

chrome.storage

Solo chrome.storage.local está soportado; chrome.storage.sync y chrome.storage.managed no lo están.

chrome.tabs

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

  • chrome.tabs.sendMessage
  • chrome.tabs.reload
  • chrome.tabs.executeScript
  • 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.

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
  • chrome.management.onEnabled
  • chrome.management.onDisabled

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.