Chrome Extension Support
Electron частично поддерживает Chrome Extensions API прежде всего для поддержки расширений для DevTools и внутренних Chromium расширений, но он также поддерживает и некоторые другие возможности расширений.
Примечание: Electron не поддерживает пользовательские расширения из магазина Chrome. Идеальная совместимость с реализацией расширений Chrome не является целью проекта Electron.
Загрузка расширений
Electron поддерживает загрузку только распакованных расширение (т.е. файлы .crx
не будут работать). Расширения устанавливаются с помощью объекта session
. Для загрузки расширения вызовите 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 поддерживаются.
chrome.devtools.network
Все функции этого API поддерживаются.
chrome.devtools.panels
Все функции этого API поддерживаются.
chrome.extension
Поддерживаются только следующие свойства chrome.extension
:
chrome.extension.lastError
Поддерживаются только следующие методы chrome.extension
:
chrome.extension.getURL
chrome.extension.getBackgroundPage
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
chrome.storage
Поддерживаются только следующие методы chrome.storage
:
chrome.storage.local
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
не поддерживается и вызовет ошибку.
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
chrome.webRequest
Все функции этого API поддерживаются.
NOTE: Electron's
webRequest
module takes precedence overchrome.webRequest
if there are conflicting handlers.