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

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.