Chrome 拡張機能サポート
Electron は Chrome 拡張機能 API のサブセットをサポートしており、主にデベロッパー ツール拡張機能と Chromium 内部拡張機能をサポートしていますが、他の拡張機能もサポートしています。
[!NOTE] Electron does not support arbitrary Chrome extensions from the store, and it is a non-goal of the Electron project to be perfectly compatible with Chrome's implementation of Extensions.
拡張機能の読み込み
Electron は解凍された拡張機能のみの読み込みをサポートしています (例えば .crx ファイルは動作しません)。 拡張機能は session ごとにインストールされます。 拡張機能を読み込むには、以下のように ses.extensions.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.sync と chrome.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(部分的サポート)- サポートするプロパティ: url、muted。
 
- サポートするプロパティ: 
[!NOTE] In Chrome, passing
-1as a tab ID signifies the "currently active tab". Electron にはそのような概念がないため、タブ ID として-1を渡すことはサポートされておらず、エラーとなります。
詳しくは 公式ドキュメント を参照して下さい。
chrome.webRequest
この API はすべての機能がサポートされています。
[!NOTE] Electron's
webRequestmodule takes precedence overchrome.webRequestif there are conflicting handlers.
詳しくは 公式ドキュメント を参照して下さい。