Поддержка расширений Chrome
Electron поддерживает подмножество API расширений Chrome (Chrome Extensions API), в основном для поддержки расширений DevTools и расширений Chromium, но также поддерживает и некоторые другие возможности расширений.
Примечание: Electron не поддерживает произвольные расширения Chrome из магазина, и проект Electron не ставит своей целью полную совместимость с реализацией расширений в Chrome.
Загрузка расширений
Electron поддерживает только загрузку распакованных расширений (т.е. файлы .crx не работают). Расширения устанавливаются для каждого session. Для загрузки расширения вызовите ses.loadExtension:
const { session } = require('electron')
session.loadExtension('path/to/unpacked/extension').then(({ id }) => {
// ...
})
Загруженные расширения не будут автоматически запоминаться после выхода из приложения; если вы не вызываете loadExtension при запуске приложения, расширение не будет загружено.
Обратите внимание, что загрузка расширений поддерживается только в постоянных сессиях. Попытка загрузить расширение в сессию оперативной памяти приведёт к ошибке.
Дополнительную информацию о загрузке, выгрузке и запросах активных расширений см. в документации session.
Поддерживаемые API расширений
Мы поддерживаем следующие API расширений, с некоторыми оговорками. Другие API также могут быть поддержаны, но поддержка любых API, не перечисленных здесь, носит предварительный характер и может быть удалена.
chrome.devtools.inspectedWindow
Все возможности этого API поддерживаются.
chrome.devtools.network
Все возможности этого API поддерживаются.
chrome.devtools.panels
Все возможности этого API поддерживаются.
chrome.extension
Поддерживаются следующие свойства chrome.extension:
chrome.extension.lastError
Поддерживаются следующие методы chrome.extension:
chrome.extension.getURLchrome.extension.getBackgroundPage
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
chrome.storage
Поддерживается только chrome.storage.local; chrome.storage.sync и chrome.storage.managed не поддерживаются.
chrome.tabs
Поддерживаются следующие методы chrome.tabs:
chrome.tabs.sendMessagechrome.tabs.reloadchrome.tabs.executeScript-
chrome.tabs.update(частичная поддержка)- поддерживаемые свойства:
url,muted.
- поддерживаемые свойства:
Примечание: В Chrome передача
-1в качестве идентификатора вкладки означает "текущую активную вкладку". Поскольку Electron не имеет такого понятия, передача-1в качестве идентификатора вкладки не поддерживается и вызовет ошибку.
chrome.management
Поддерживаются следующие методы chrome.management:
chrome.management.getAllchrome.management.getchrome.management.getSelfchrome.management.getPermissionWarningsByIdchrome.management.getPermissionWarningsByManifestchrome.management.onEnabledchrome.management.onDisabled
chrome.webRequest
Все возможности этого API поддерживаются.
ПРИМЕЧАНИЕ: Модуль
webRequestElectron имеет приоритет надchrome.webRequestв случае конфликтующих обработчиков.
© GitHub Inc.
Licensed under the MIT license.
https://www.electronjs.org/docs/latest/api/extensions