共有モジュールは、他のリソースとリソースの間で共有できる、権限のないリソースのコレクションです。 拡張機能とアプリ共有モジュールの一般的な用途は次のとおりです。
- API として。HTML、JS、その他のソースを提供できる共有モジュールを配布して、 依存する拡張機能とは別に更新できる API を提供します。これは次のいずれかです。 アプリはランタイムやゲームエンジンに有用です。ゲームエンジンでは、多くの場合、アプリはより小さなペイロードで 参照します。
- ダウンロードを最適化するため。共有モジュールには、多くの拡張機能で使用される共通リソースが含まれています。 依存関係にある拡張機能が初めてインストールされたときに、1 回ダウンロードされます。
マニフェスト
共有モジュールは、エクスポートとインポートの 2 つのマニフェスト フィールドで使用されます。
export フィールドは、拡張機能がそのリソースをエクスポートする共有モジュールであることを示します。
{
"version": "1.0",
"name": "My Shared Module",
"export": {
// Optional list of extension IDs explicitly allowed to
// import this Shared Module's resources. If no allowlist
// is given, all extensions are allowed to import it.
"allowlist": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
]
}
// Note: no permissions are allowed in Shared Modules
}
import フィールドは、拡張機能とアプリがリソースに依存することを宣言するために使用します。 次の点に注意してください。
{
"version": "1.0",
"name": "My Importing Extension",
...
"import": [
{"id": "cccccccccccccccccccccccccccccccc"},
{"id": "dddddddddddddddddddddddddddddddd"
"minimum_version": "0.5" // optional
},
]
}
リソースへのアクセス
共有モジュールのリソースが、ルートの予約済みパス _modules/SHARED_MODULE_ID からアクセス ご確認くださいたとえば、スクリプト「foo.js」を含めるには、共通のモジュールから ID "cccccccccccccccccccccccccccccc"では、拡張機能のルートから次のパスを使用します。
<script src="_modules/cccccccccccccccccccccccccccccccc/foo.js">
インポートする拡張機能の ID が「aaaaaaaaaaaaaaaaaaaaaaaaaaaaa」の場合は、リソースの完全な URL 説明します。
chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/_modules/cccccccccccccccccccccccccccccccc/
共有モジュールのリソースは、インポート元にオーバーレイされているので、 拡張機能をインポートするために付与されているすべての権限は、共有 説明します。また、共有モジュールは、拡張機能のインポートとリソースに 指定します。
インストール / アンインストール
共有モジュールは、依存関係によって必要に応じて Chrome ウェブストアから自動的にインストールされます。 その拡張機能を参照している最後の拡張機能がアンインストールされると、自動的にアンインストールされます。 共有モジュールを使用する拡張機能をアップロードするには、共有モジュールを 拡張機能は、共有モジュールの使用を制限してはなりません。 できます。
開発時に、拡張機能が使用する共有モジュールを手動でインストールする必要があります。 サイドローディングされた拡張機能や、パッケージ化されていない状態で読み込まれた拡張機能では、自動インストールは行われません できます。ローカルにインストールされ、パッケージ化されていない共有モジュールの場合は、key フィールドを使用して、 共有モジュールが正しい ID を使用するようにします。