メインコンテンツへスキップ

Chrome エクステンションのサポート

Electronは、主にDevToolsエクステンションとChromium内部のエクステンションをサポートするために、ChromeエクステンションAPI のサブセットをサポートしていますが、その他いくつかのエクステンション機能もサポートしています。

注記: 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のサポートは暫定的であり、削除される可能性があります。

サポートされているマニフェストキー

  • name
  • version
  • author
  • permissions
  • content_scripts
  • default_locale
  • devtools_page
  • short_name
  • host_permissions (マニフェストV3)
  • manifest_version
  • background (マニフェストV2)
  • minimum_chrome_version

各キーの目的の詳細については、マニフェストファイル形式 を参照してください。

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 (部分的にサポート)
    • サポートされているプロパティ: urltitleaudibleactivemuted
  • chrome.tabs.update (部分的にサポート)
    • サポートされているプロパティ: urlmuted

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

詳細については、公式ドキュメント を参照してください。

chrome.webRequest

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

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

詳細については、公式ドキュメント を参照してください。