メインコンテンツへ飛ぶ

Chrome 拡張機能サポート

Electron は Chrome 拡張機能 API のサブセットをサポートしており、主にデベロッパー ツール拡張機能と 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 でのみサポートされます。 拡張機能をメモリで一時的な session に読み込もうとすると、エラーが送出されます。

有効な拡張機能の読み込み、解除、クエリについての詳細は session のドキュメントを参照してください。

サポートする拡張機能 API

いくつかの注意点はありますが、以下の拡張機能 API をサポートしています。 他の API も追加でサポートされる可能性がありますが、ここに記載されていない API のサポートは暫定であり、削除される可能性があります。

サポートする Manifest のキー

  • usage-limits
  • version
  • author
  • permissions
  • content_scripts
  • default_locale
  • devtools_page
  • short_name
  • host_permissions (Manifest V3)
  • manifest_version
  • background (Manifest V2)
  • minimum_chrome_version

指定可能な各キーの意味については、Manifest ファイルフォーマット をご参照ください。

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.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.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.scripting

この API はすべての機能がサポートされています。

詳しくは 公式ドキュメント を参照して下さい。

chrome.storage

chrome.storage のうち以下のメソッドがサポートされています。

  • chrome.storage.local

chrome.storage.syncchrome.storage.managed はサポートされて いません

詳しくは 公式ドキュメント を参照して下さい。

chrome.tabs

chrome.tabs のうち以下のメソッドがサポートされています。

  • chrome.tabs.sendMessage
  • chrome.tabs.reload
  • chrome.tabs.executeScript
  • chrome.tabs.query (部分的サポート)
    • サポートしているプロパティ: url, title, audible, active, muted です。
  • chrome.tabs.update (部分的サポート)
    • サポートするプロパティ: urlmuted

注: Chrome では、タブ ID に -1 を渡すと "現在アクティブなタブ" を意味します。 Electron にはそのような概念がないため、タブ ID として -1 を渡すことはサポートされておらず、エラーとなります。

詳しくは 公式ドキュメント を参照して下さい。

chrome.webRequest

この API はすべての機能がサポートされています。

注意: ハンドラが競合する場合は、chrome.webRequest より Electron の webRequest モジュールのものが優先されます。

詳しくは 公式ドキュメント を参照して下さい。