.crxファイルからインストールされた拡張機能を実行しているか、「解凍された拡張機能をロード...」ボタンを使用して拡張機能がロードされたかを検出する方法はありますか?
その場合のIDの違いについては知っていますが、コード内のハードコードされた文字列に依存したくありません。
.crxファイルからインストールされた拡張機能を実行しているか、「解凍された拡張機能をロード...」ボタンを使用して拡張機能がロードされたかを検出する方法はありますか?
その場合のIDの違いについては知っていますが、コード内のハードコードされた文字列に依存したくありません。
「ファイルからインストール」とは、Chromeウェブストアからインストールしたことを意味する場合、属性の値の.crx
拡張子を確認するだけです。拡張機能をアップロードすると、CWSが追加します。manifest.json
update_url
セルフホスト.crx
ファイルがある場合は、返されたExtensionInfoオブジェクトを使用して拡張情報を取得しchrome.management.getSelf()
、確認してください。それが言うなら、それは拡張機能が開発者モードで解凍されてロードされたことを意味します。ファイルからインストールされたことを意味します。installType
"development"
"normal"
.crx
これを行う方法のコードサンプルは次のとおりです。
function isDevMode() {
return !('update_url' in chrome.runtime.getManifest());
}
拡張機能は、マニフェストにフィールドが含まれていない場合、開発者モードで実行されています(つまり、解凍されています) 。update_url
これが機能するのは、解凍された拡張機能のJSONマニフェストファイルにupdate_url
フィールドが含まれていてはならないためです。このフィールドは、Chromeデベロッパーダッシュボードを介して公開するときに自動的に追加されます。
たとえば、開発中にのみ表示されるデバッグログ。
const IS_DEV_MODE = !('update_url' in chrome.runtime.getManifest());
function debugLog(str) {
if (IS_DEV_MODE) console.log(str);
}
debugLog('This only appears in developer mode');