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-limitsversionauthorpermissionscontent_scriptsdefault_localedevtools_pageshort_namehost_permissions(Manifest V3)manifest_versionbackground(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.getURLchrome.extension.getBackgroundPage
詳しくは 公式ドキュメント を参照して下さい。
chrome.management
chrome.management のうち以下のメソッドがサポートされています。
chrome.management.getAllchrome.management.getchrome.management.getSelfchrome.management.getPermissionWarningsByIdchrome.management.getPermissionWarningsByManifest
chrome.management のうち以下のイベントがサポートされています。
chrome.management.onEnabledchrome.management.onDisabled
詳しくは 公式ドキュメント を参照して下さい。
chrome.runtime
chrome.runtime のうち以下のプロパティがサポートされています。
chrome.runtime.lastErrorchrome.runtime.id
chrome.runtime のうち以下のメソッドがサポートされています。
chrome.runtime.getBackgroundPagechrome.runtime.getManifestchrome.runtime.getPlatformInfochrome.runtime.getURLchrome.runtime.connectchrome.runtime.sendMessagechrome.runtime.reload
chrome.runtime のうち以下のイベントがサポートされています。
chrome.runtime.onStartupchrome.runtime.onInstalledchrome.runtime.onSuspendchrome.runtime.onSuspendCanceledchrome.runtime.onConnectchrome.runtime.onMessage
詳しくは 公式ドキュメント を参照して下さい。
chrome.scripting
この API はすべての機能がサポートされています。
詳しくは 公式ドキュメント を参照して下さい。
chrome.storage
chrome.storage のうち以下のメソッドがサポートされています。
chrome.storage.local
chrome.storage.sync と chrome.storage.managed はサポートされて いません。
詳しくは 公式ドキュメント を参照して下さい。
chrome.tabs
chrome.tabs のうち以下のメソッドがサポートされています。
chrome.tabs.sendMessagechrome.tabs.reloadchrome.tabs.executeScriptchrome.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.
詳しくは 公式ドキュメント を参照して下さい。