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

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

See official documentation for more information.