Chrome 拡張機能をインストールする

Google Chrome の拡張機能は、Google Chrome の機能を変更、拡張できる小さなソフトウェア プログラムです。

Google Chrome の拡張機能は拡張機能ギャラリーからダウンロードできます。また、独自に拡張機能を作成する方法については、Google Chrome の拡張機能をご覧ください。

拡張機能をプレインストールするには、グループ ポリシー、レジストリ、master_preferences の 3 つの方法があります。

グループ ポリシーを使用してプレインストールする

ポリシーを使用すると、最も簡単かつスケーラブルに拡張機能や Chrome ウェブ アプリを導入できます。パソコン上に CRX ファイルを置く必要がないので、拡張機能をプッシュする場合におすすめの方法です。特定の URL でのみ使用できるようにする必要があります。

この方法を使用するには、拡張機能を「強制インストール」するようにポリシーを設定します。詳細については、こちら(英語)をご覧ください。

master_preferences を使用してプレインストールする

プレインストールされた拡張機能は、chrome.exe の横にある master_preferences ファイルに追加されます。つまり、CRX ファイルの場所はどこでもかまわず、対象ユーザーのパソコン上にある必要はありません。インストール スクリプトのパッケージに含まれている必要もありません。

master_preferences ファイルの概要とその機能については、こちらをご覧ください。

この方法を使用する場合の要件は次のとおりです:

  • この方法は、ユーザーが公開拡張機能ギャラリーか CRX ファイルがある別の URL にアクセスできる場合にのみ使用できます。逆に、ギャラリーへのアクセスを制限する企業のファイアウォールやプロキシでユーザーが保護されている場合、この方法は使用できないことがあります。

  • 通常、この方法は新規インストールでのみ使用します。既存のインストールで使用するには、消去の手順がいくつも必要になるため手間がかかります。

master_preferences を使用して拡張機能をプレインストールするには:

  1. インストールする CRX ファイルを見つけます。ギャラリーからダウンロードするか、独自に作成してパッケージに含めます。

  2. zip プログラムで CRX を開き、manifest.json ファイル(テキスト ファイル)を見つけます。これには、必要となる多数の値が含まれています。

  3. manifest.json ファイルの値を使用して master_preferences を設定します。

次の master_preferences の例では、Google リーダーの拡張機能をプレインストールします。


{
 "homepage" : "http://dev.chromium.org",
 "homepage_is_newtabpage" : true,
 "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {
          "location": 1,
          "manifest": {
             "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5cK3ybDkh173plsjDX
              oqUzvsjFRMtbc5+a8HR6dxYBETeXQ7GOR5/xYnsY2R4smo5ly4yUK69iF7rnPNH+
              X97K7e7JFbuH5W/ZRc8YaIG66oJ9JwKZagSOZasSJPWNz4f1GdaHD1Z4KRucvOYx
              saPVdwS2W3nbG6i3oQFaio+JQIDAQAB",
             "name": "Google Reader Notifier (インストール中...)",
             "permissions": [ "tabs", "http://www.google.com/" ],
             "update_url": "http://clients2.google.com/service/update2/crx",
             "version": "0.0"
          },
          "path": "apflmjolhbonpkbkooiamcnenbmbjcbf\\0.0",
          "state": 1
       }
    }
  }
}

この master_preferences ファイルの各行を詳しく説明します:

  • settings の下の最初の値は拡張機能のハッシュ値です(「apflmjolhbonpkbkooiamcnenbmbjcbf」)。これは CRX ファイルをパッケージに含めるときに取得できます。ギャラリーでの拡張機能の識別子でもあります。
  • 「location」は常に 1 にする必要があります。
  • 「manifest」セクションには、「key」、「name」、「permissions」、「update_url」、「version」を含める必要があります。これらは拡張機能のマニフェストに含まれています。
  • 「key」値は、ハッシュ値と同様に、パッケージに含まれた拡張機能から取得できます。解凍した CRX ファイルを確認すると、manifest.json に「key」があります。
  • 「name」には任意のテキストを指定できますが、「(インストール中...)」などの一時的なタグを指定しておくと、拡張機能の読み込みに時間がかかっている理由をユーザーに知らせることができます。
  • 「permissions」は拡張機能の CRX ファイルの「update_url」と同じ権限にします。異なると、ユーザーに多数の警告が表示され、拡張機能が読み込まれません。したがって、permissions 配列を指定したり、空白にしたりしないでください。実際の拡張機能には多数の権限が必要になり、権限の昇格があってもわかりません。
  • 「update_url」は、CRX がある場所の URL です。これも manifest.json ファイルに含まれています。
  • 「version」は常に「0.0」にする必要があります。
  • 「path」には、常に拡張機能のハッシュに「\\0.0」を付けて指定します。
  • 「state」は常に 1 にする必要があります。
  • これらのルールに従っていない場合、拡張機能が読み込まれなかったり、ユーザーに警告が表示されたりする場合があります。

重要: 権限が必要なコンテンツ スクリプトが拡張機能に含まれている場合は、それらも master_preferences に列挙されます。次に例を示します。


{
"extensions": {
        "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {
          "location": 1,
          "manifest": {
              "content_scripts": [ {
                "all_frames": true,
                "js": [ "script.js" ],
                "matches": [ "http://*/*", "https://*/*" ],
                "run_at": "document_start"
              } ],
             "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5cK3ybDkh173plsjDX
             oqUzvsjFRMtbc5+a8HR6dxYBETeXQ7GOR5/xYnsY2R4smo5ly4yUK69iF7rnPNH+X
             97K7e7JFbuH5W/ZRc8YaIG66oJ9JwKZagSOZasSJPWNz4f1GdaHD1Z4KRucvOYxsa
             PVdwS2W3nbG6i3oQFaio+JQIDAQAB",
             "name": "Google Reader Notifier (インストール中...)",
              ...
権限/アクセス権が必要なコンテンツ スクリプトが拡張機能に含まれている場合、ここで指定しなければ、拡張機能は読み込まれません。

複数の拡張機能をあらかじめ組み込むことができます。「settings」の下にブロックを追加するだけで、簡単に拡張機能を追加できます。


{
"extensions": {
        "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {  <-- extension one
          "location": 1,
          "manifest": {
              ...
          }
        },
       "oaiwevnmzvoinziufeuibyfnzwevmiiw": {  <-- extension two
         "location": 1,
         "manifest": {
           ...
       },
       ...
     }
   }
}

拡張機能にユーザーの承認が必要な権限が含まれている場合は、「granted_permissions」セクションも含める必要があります。


{
"extensions": {
        "settings": {
"mihcahmgecmbnbcchbopgniflfhgnkff": {
        "location": 1,
        "manifest": {
          ...
        },
"granted_permissions": {
          "api": [ "tabs" ],
"explicit_host": [ "http://*.google.com/*", "https://*.google.com/" ],
          "scriptable_host": [ "http://example.com/" ]
                },
        ...
      },
      ...
    }
  }
}

「granted_permissions」セクションを含めないと、Chrome で即座に拡張機能が無効になります。「granted_permissions」フィールドには次のサブフィールドがあります。

  • 「api」には、manifest の「permissions」キーの API 権限を含めます。
  • 「explicit_host」には、manifest の「permissions」キーのホスト権限を含めます。
  • 「scriptable_host」は、拡張機能のコンテンツ スクリプト内のいずれかのホストに設定します。

granted_permissions フィールドを生成する最も簡単な方法は、拡張機能をローカルにインストールして、その拡張機能の granted_permissions を Chrome プロフィールの Preferences ファイルからコピーすることです。