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.
Примечание: Electron не поддерживает пользовательские расширения из магазина Chrome. Идеальная совместимость с реализацией расширений Chrome не является целью проекта Electron.
Загрузка расширений
Electron поддерживает загрузку только распакованных расширение (т.е. файлы .crx
не будут работать). Расширения устанавливаются с помощью объекта session
. To load an extension, call ses.loadExtension
:
const { session } = require('electron')
session.defaultSession.loadExtension('path/to/unpacked/extension').then(({ id }) => {
// ...
})
Загруженные расширения не буду автоматически запоминаться при выходе: если вы не вызовите loadExtension
при запуске приложения - расширение не будет загружено.
Обратите внимание, что загрузка расширений поддерживается только в постоянных сессиях. Попытка загрузить расширение в сохраненную сессию приведет к ошибке.
Смотрите документацию по session
чтобы узнать больше о загрузке, выгрузке и получении активных расширений.
Поддерживаемые API расширений
Мы поддерживаем следующие API расширений с некоторыми оговорками. Остальные API могут дополнительно поддерживаться, но поддержка API, не перечисленных здесь, является предварительной и может быть удалена.
Supported Manifest Keys
name
версия
автор
permissions
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
Все функции этого API поддерживаются.
See official documentation for more information.
chrome.devtools.network
Все функции этого API поддерживаются.
See official documentation for more information.
chrome.devtools.panels
Все функции этого API поддерживаются.
See official documentation for more information.
chrome.extension
Поддерживаются только следующие свойства chrome.extension
:
chrome.extension.lastError
Поддерживаются только следующие методы chrome.extension
:
chrome.extension.getURL
chrome.extension.getBackgroundPage
See official documentation for more information.
chrome.management
Поддерживаются только следующие методы chrome.management
:
chrome.management.getAll
chrome.management.get
chrome.management.getSelf
chrome.management.getPermissionWarningsById
chrome.management.getPermissionWarningsByManifest
Поддерживаются только следующие события chrome.management
:
chrome.management.onEnabled
chrome.management.onDisabled
See official documentation for more information.
chrome.runtime
Поддерживаются только следующие свойства chrome.runtime
:
chrome.runtime.lastError
chrome.runtime.id
Поддерживаются только следующие методы chrome.runtime
:
chrome.runtime.getBackgroundPage
chrome.runtime.getManifest
chrome.runtime.getPlatformInfo
chrome.runtime.getURL
chrome.runtime.connect
chrome.runtime.sendMessage
chrome.runtime.reload
Поддерживаются только следующие события chrome.runtime
:
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
Все функции этого API поддерживаются.
See official documentation for more information.
chrome.storage
Поддерживаются только следующие методы chrome.storage
:
chrome.storage.local
chrome.storage.sync
and chrome.storage.managed
are not supported.
See official documentation for more information.
chrome.tabs
Поддерживаются только следующие методы chrome.tabs
:
chrome.tabs.sendMessage
chrome.tabs.reload
chrome.tabs.executeScript
chrome.tabs.query
(частичная поддержка)- поддерживаемые свойства:
url
,title
,audible
,active
,muted
.
- поддерживаемые свойства:
chrome.tabs.update
(частичная поддержка)- поддерживаемые свойства:
url
,muted
.
- поддерживаемые свойства:
Примечание: В Chrome, передача
-1
в качестве идентификатора вкладки означает "текущую активную вкладку". Поскольку в Electron такого понятия нет, передача-1
не поддерживается и вызовет ошибку.
See official documentation for more information.
chrome.webRequest
Все функции этого API поддерживаются.
NOTE: Electron's
webRequest
module takes precedence overchrome.webRequest
if there are conflicting handlers.
See official documentation for more information.