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.
Загрузка расширений
Electron поддерживает загрузку только распакованных расширение (т.е. файлы .crx не будут работать). Расширения устанавливаются с помощью объекта session. Для загрузки расширения вызовите ses.extensions.loadExtension:
const { session } = require('electron')
session.defaultSession.loadExtension('path/to/unpacked/extension').then(({ id }) => {
// ...
})
Загруженные расширения не буду автоматически запоминаться при выходе: если вы не вызовите loadExtension при запуске приложения - расширение не будет загружено.
Обратите внимание, что загрузка расширений поддерживается только в постоянных сессиях. Попытка загрузить расширение в сохраненную сессию приведет к ошибке.
Смотрите документацию по session чтобы узнать больше о загрузке, выгрузке и получении активных расширений.
Поддерживаемые API расширений
Мы поддерживаем следующие API расширений с некоторыми оговорками. Остальные API могут дополнительно поддерживаться, но поддержка API, не перечисленных здесь, является предварительной и может быть удалена.
Supported Manifest Keys
nameверсияавторpermissionscontent_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
Все функции этого 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.getURLchrome.extension.getBackgroundPage
See official documentation for more information.
chrome.management
Поддерживаются только следующие методы chrome.management:
chrome.management.getAllchrome.management.getchrome.management.getSelfchrome.management.getPermissionWarningsByIdchrome.management.getPermissionWarningsByManifest
Поддерживаются только следующие события chrome.management:
chrome.management.onEnabledchrome.management.onDisabled
See official documentation for more information.
chrome.runtime
Поддерживаются только следующие свойства chrome.runtime:
chrome.runtime.lastErrorchrome.runtime.id
Поддерживаются только следующие методы chrome.runtime:
chrome.runtime.getBackgroundPagechrome.runtime.getManifestchrome.runtime.getPlatformInfochrome.runtime.getURLchrome.runtime.connectchrome.runtime.sendMessagechrome.runtime.reload
Поддерживаются только следующие события chrome.runtime:
chrome.runtime.onStartupchrome.runtime.onInstalledchrome.runtime.onSuspendchrome.runtime.onSuspendCanceledchrome.runtime.onConnectchrome.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.sendMessagechrome.tabs.reloadchrome.tabs.executeScriptchrome.tabs.query(частичная поддержка)- поддерживаемые свойства:
url,title,audible,active,muted.
- поддерживаемые свойства:
chrome.tabs.update(частичная поддержка)- поддерживаемые свойства:
url,muted.
- поддерживаемые свойства:
[!NOTE] In Chrome, passing
-1as a tab ID signifies the "currently active tab". Поскольку в Electron такого понятия нет, передача-1не поддерживается и вызовет ошибку.
See official documentation for more information.
chrome.webRequest
Все функции этого API поддерживаются.
[!NOTE] Electron's
webRequestmodule takes precedence overchrome.webRequestif there are conflicting handlers.
See official documentation for more information.