共有モジュール

共有モジュールは、権限のないリソースのコレクションで、リソース間で共有できます。 できます。共有モジュールの一般的な用途は次のとおりです。

  • API として。HTML や JavaScript、その他のリソースを提供できる共有モジュールを配布して、 依存している拡張機能から独立して更新できる API を提供します。
  • ダウンロードを最適化するため。共有モジュールには、多くの拡張機能で使用される共通リソースが含まれています。 依存関係にある拡張機能が初めてインストールされたときに、1 回ダウンロードされます。

マニフェスト

共有モジュールは、"export""import" の 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 を使用するようにします。