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.
[!NOTE] Electron does not support arbitrary Chrome extensions from the store, and it is a non-goal of the Electron project to be perfectly compatible with Chrome's implementation of Extensions.
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.extensions.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.
See the session documentation for more information about loading, unloading, and querying active extensions.
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)versionauthor (autor)permisoscontent_scriptsdefault_localedevtools_pageshort_namehost_permissions(Manifest V3)manifest_versionbackground(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.getURLchrome.extension.getBackgroundPage
See official documentation for more information.
chrome.management
Los siguientes métodos de chrome.management son soportados:
chrome.management.getAllchrome.management.getchrome.management.getSelfchrome.management.getPermissionWarningsByIdchrome.management.getPermissionWarningsByManifest
Los siguientes eventos de chrome.management están soportados:
chrome.management.onEnabledchrome.management.onDisabled
See official documentation for more information.
chrome.runtime
Las siguientes propiedades de chrome.runtime son soportadas:
chrome.runtime.lastErrorchrome.runtime.id
Los siguientes métodos de chrome.runtime son soportados:
chrome.runtime.getBackgroundPagechrome.runtime.getManifestchrome.runtime.getPlatformInfochrome.runtime.getURLchrome.runtime.connectchrome.runtime.sendMessagechrome.runtime.reload
Los siguientes eventos de chrome.runtime están soportados:
chrome.runtime.onStartupchrome.runtime.onInstalledchrome.runtime.onSuspendchrome.runtime.onSuspendCanceledchrome.runtime.onConnectchrome.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.sendMessagechrome.tabs.reloadchrome.tabs.executeScriptchrome.tabs.query(soporte parcial)- supported properties:
url,title,audible,active,muted.
- supported properties:
chrome.tabs.update(soporte parcial)- propiedades soportadas:
url,muted.
- propiedades soportadas:
[!NOTE] In Chrome, passing
-1as a tab ID signifies the "currently active tab". Dado que Electron no tiene tal concepto, pasar-1como 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.
[!NOTE] Electron's
webRequestmodule takes precedence overchrome.webRequestif there are conflicting handlers.
See official documentation for more information.