Перейти к основному содержанию

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 over chrome.webRequest if there are conflicting handlers.