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.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
。
- サポートされているプロパティ:
注記: Chromeでは、タブIDとして
-1
を渡すと「現在アクティブなタブ」を示します。Electronにはそのような概念がないため、タブIDとして-1
を渡すことはサポートされておらず、エラーが発生します。
詳細については、公式ドキュメント を参照してください。
chrome.webRequest
このAPIのすべての機能がサポートされています。
注記: 衝突するハンドラーがある場合、Electronの
webRequest
モジュールがchrome.webRequest
よりも優先されます。
詳細については、公式ドキュメント を参照してください。