その他の拡張機能の配信方法

すべての Chrome 拡張機能は、Chrome ウェブストアから直接配布するか、以下の方法で配布する必要があります。これらの配布方法のいずれかを遵守していない場合、Chrome 拡張機能ポリシーへの違反となり、拡張機能やその配布ソフトウェアが望ましくないソフトウェアとして報告される可能性があります。

通常、ユーザーは Chrome ウェブストアから拡張機能をインストールしますが、別の方法で拡張機能をインストールしたい場合もあります。一般的なケースは次の 2 つです。

  • 拡張機能は他のソフトウェアに関連付けられており、ユーザーがそのソフトウェアをインストールするたびにインストールする必要があります。
  • ネットワーク管理者が、組織全体に同じ拡張機能をインストールしたいと考えています。

Chrome ウェブストアからインストールされていない拡張機能のことを外部拡張機能といいます。 他のソフトウェアのインストール プロセスの一環として拡張機能を配布する場合や、組織全体に拡張機能を配布するネットワーク管理者の場合、Google Chrome は次の拡張機能のインストール方法をサポートしています。

  • 環境設定 JSON ファイルを使用する(Mac OS X と Linux のみ)
  • Windows レジストリを使用する(Windows のみ)

どちらの方法でも、update_URL でホストされている拡張機能のインストールがサポートされます。Windows と Mac の場合、update_URL は拡張機能をホストする Chrome ウェブストアを指定する必要があります。

Linux の環境設定ファイルでは、拡張機能をホストする独自のサーバーを指定できます。設定 JSON ファイルでは、ユーザーの Linux コンピュータにある .crx 拡張機能ファイルから拡張機能をインストールすることもできます。

始める前に

まず、Chrome ウェブストアで拡張機能をpublishするか、.crx ファイルをパッケージ化して、正常にインストールされたことを確認します。

更新 URL からインストールする場合は、拡張機能が適切にホストされていることを確認してください。

環境設定ファイルまたはレジストリを編集する前に、次の情報をメモしておいてください。

  • 拡張機能の .crx ファイルの意図された場所、または拡張機能の提供元の更新 URL
  • 拡張機能のバージョン(マニフェスト ファイルまたは chrome://extensions ページから)
  • 拡張機能の ID(パッケージ化された拡張機能を読み込んだときに chrome://extensions ページに表示される)

次の例では、バージョンが 1.0、ID が aaaaaaaaaabbbbbbbbbbcccccccccc であることを前提としています。

環境設定ファイルを使用する

  1. Linux のファイルからインストールする場合は、拡張機能をインストールするマシンで .crx 拡張機能ファイルを使用できるようにします。(ローカル ディレクトリまたは \\server\share\extension.crx/home/share/extension.crx などのネットワーク共有にコピーします)。
  2. 次のいずれかのフォルダに、aaaaaaaaaabbbbbbbbbbcccccccccc.json という名前でファイルを作成します。ファイル名(拡張子なし)は、拡張機能の ID に対応します。オペレーティング システムによって場所が異なります。

    Mac OS X:

    特定のユーザー: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ すべてのユーザー: /Library/Application Support/Google/Chrome/External Extensions/

    すべてのユーザーの外部拡張ファイルが読み取られるのは、パス内のすべてのディレクトリがユーザー root によって所有され、グループが admin または wheel であり、全世界が書き込み可能でない場合のみです。また、パスにはシンボリック リンクが含まれていない必要があります。こうした制限により、権限のないユーザーによってすべてのユーザーに拡張機能がインストールされるのを防ぐことができます。詳しくは、トラブルシューティングをご覧ください。

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    注: aaaaaaaaaabbbbbbbbbbcccccccccc.json ファイルが誰でも読み取り可能になるように、必要に応じて chmod を使用してください。

  3. Linux のみ: ファイルからインストールする場合は、上記で作成したファイルの「external_crx」と「external_version」で、拡張機能の場所とバージョンを指定します。

    • 例:
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • 注:\` character in the location. For example,\server\share\extension.crxwould be"\\server\share\extension.crx"` をエスケープする必要があります。
    • 更新 URL からインストールする場合は、フィールド名「external_update_url」を使用して拡張機能の更新 URL を指定します。
    • ローカルの .crx ファイルからのインストール例(Linux のみ):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • Chrome ウェブストアからのインストール例(Mac、Linux):
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • 一部のブラウザの言語 / 地域にのみ拡張機能をインストールする場合は、フィールド名「supported_locale」としてサポートされている言語 / 地域のリストを指定できます。ロケールでは「en」などの親ロケールを指定できます。この場合、「en-US」や「en-GB」など、すべての英語ロケールに拡張機能がインストールされます。拡張機能でサポートされていない別のブラウザ ロケールを選択した場合、外部拡張機能はアンインストールされます。「supported_locales」リストが指定されていない場合、拡張機能はすべてのロケールにインストールされます。
    • 例:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. JSON ファイルを保存します。

  5. Google Chrome を起動し、chrome://extensions にアクセスします。拡張機能がリストに表示されます。

Mac OS の権限に関する問題のトラブルシューティング

Mac OS では、ファイル システムの権限が権限のないユーザーによる変更を妨げる場合にのみ、すべてのユーザーの外部拡張機能ファイルが読み取られます。Chrome の起動時に外部拡張機能がインストールされていない場合は、外部拡張機能の環境設定ファイルの権限に問題がある可能性があります。これが原因かどうかを確認するには、次の手順を行います。

  1. コンソール プログラムを起動します。/Applications/Utilities/Console にあります。
  2. コンソールの左端のアイコンに [Show Log List] と表示されている場合は、そのアイコンをクリックします。左側に 2 番目の列が表示されます。
  3. 左側のペインで [Console Messages] をクリックします。
  4. Can not read external extensions」という文字列を検索します。外部拡張機能ファイルの読み取り中に問題が発生すると、エラー メッセージが表示されます。その上に表示される別のエラー メッセージを探して、問題の内容を説明します。たとえば、「Path /Library/Application Support/Google/Chrome is own by the wrong group」というエラーが表示された場合は、chgrp または Finder の [情報を見る] ダイアログを使用して、ディレクトリのグループ オーナーを管理者グループに変更する必要があります。
  5. 問題を修正したら、Chrome を再起動します。外部拡張機能がインストールされていることをテストします。1 つの権限エラーが原因で、Chrome が 2 つ目のエラーを検出できない場合があります。外部拡張機能がインストールされていない場合は、コンソール アプリにエラーが表示されなくなるまでこの手順を繰り返します。

Windows レジストリの使用

  1. レジストリで次のキーを探すか、作成します。
    • 32 ビット Windows: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • 64 ビット Windows: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. 拡張機能の ID と同じ名前(aaaaaaaaaabbbbbbbbbbcccccccccc など)を使用して、Extensions キーの下に新しいキー(フォルダ)を作成します。
  3. 拡張機能キーでプロパティ「update_url」を作成し、値「https://clients2.google.com/service/update2/crx」に設定します(Chrome ウェブストアの拡張機能の crx を指します)。

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. ブラウザを起動し、chrome://extensions にアクセスします。拡張機能がリストに表示されます。

アップデートとアンインストール

Google Chrome はブラウザが起動されるたびに設定とレジストリのメタデータ エントリをスキャンし、インストールされている外部拡張機能に必要な変更を加えます。

拡張機能を新しいバージョンに更新するには、ファイルを更新してから、環境設定またはレジストリ内のバージョンを更新します。

拡張機能をアンインストールするには(ソフトウェアがアンインストールされている場合など)、設定ファイル(aaaaaaaaaabbbbbbbbbbcccccccccc.json)またはメタデータをレジストリから削除します。

よくある質問

このセクションでは、外部拡張機能に関するよくある質問に回答します。

M33 以降、Google Chrome で「プリインストール」を許可する方法は、引き続きサポートされますか?

はい。ただし、Chrome ウェブストアの update_URL からのインストールとしてのみ可能です。ローカルのファイルパスからインストールすることはできません。

外部拡張機能へのパスとして URL を指定できますか?

はい。Mac OS X と Linux では preferences JSON ファイル、Windows ではregistryを使用します。拡張機能は、ホスティングの説明に沿ってホストする必要があります。設定ファイルで「external_update_url」プロパティを使用して、拡張機能の URL を含むアップデート マニフェストを指定します。Windows レジストリでは、「update_url」プロパティを使用します。

環境設定ファイルを使用してインストールするときによくある間違いは何ですか?

  • .crx にリストされている ID / バージョンと同じ ID / バージョンを指定していない
  • .json ファイル(aaaaaaaaaabbbbbbbbbbcccccccccc.json)の場所が間違っているか、指定された ID が拡張機能 ID と一致していません。
  • JSON ファイルの構文エラー(カンマでエントリを区切るのを忘れるか、末尾にカンマが残されている)
  • JSON ファイル エントリが、.crx への誤ったパスを指している(またはパスが指定されていてもファイル名がない)
  • UNC パス内のバックスラッシュがエスケープされない(たとえば、"\\server\share\file" は間違っている。この場合、"\\\\server\\share\\extension" とする必要がある)
  • ネットワーク共有の権限の問題

レジストリとともにインストールするときによくある間違いは何ですか?

  • Chrome ウェブストアに記載されている ID またはバージョンと同じ ID またはバージョンを指定していない
  • レジストリの間違った場所に鍵が作成された
  • レジストリ エントリが Chrome ウェブストアの .crx ファイルへの間違ったパスを指している
  • ネットワーク共有の権限の問題

ネイティブ バイナリと拡張機能を段階的に更新するにはどうすればよいですか?

これまでストア外の拡張機能がサポートされていた場合、ネイティブ バイナリと拡張機能をロックステップで更新できました。ただし、Chrome ウェブストアでホストされている拡張機能は、デベロッパーが管理していない Chrome 更新メカニズムで更新されます。拡張機能のデベロッパーは、ネイティブ バイナリに依存する拡張機能(NPAPI を使用する以前の拡張機能など)の更新に注意する必要があります。

ユーザーが拡張機能をアンインストールするとどうなりますか?

ユーザーが UI から拡張機能をアンインストールすると、起動のたびにインストールまたは更新されなくなります。つまり、外部拡張機能は拒否リストに登録されています。

ブロックリストから外すにはどうすればよいですか?

ユーザーが拡張機能をアンインストールする場合は、その判断を尊重する必要があります。ただし、デベロッパーが UI から拡張機能を誤ってアンインストールした場合は、ブロックリスト タグを削除できます。タグを削除するには、UI を使用して通常どおり拡張機能をインストールし、その後アンインストールします。