自動更新

Google Chrome 自体と同じように、拡張機能やアプリを自動更新する必要があります。 バグの修正やセキュリティの修正、新機能の追加やパフォーマンスの強化、 作成しました。

Chrome デベロッパー ダッシュボードを使用して公開する場合は、このページを無視してください。Chrome ウェブ 送信したストアのプレビューが合格すると、自動的に拡張機能の Chrome ウェブストア アイテムリストに表示され、エンドユーザーにデプロイされます。

ウェブサーバーで CRX ファイルをホストし、エンタープライズ ポリシーを使用してそのファイルを Managed Service for Prometheus に push する場合 続きを読むことができます。ホスティングパッケージ化もご覧ください。

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

概要

  • マニフェストには「update_url」とフィールド内で、更新チェックを行う場所をポイントします。
  • 更新チェックで返されるコンテンツは、更新マニフェストの XML ドキュメントであり、 できます。

ブラウザは、数時間ごとに、インストール済みの拡張機能やアプリに更新 URL が設定されているかどうかを確認します。対象 その URL に対してリクエストを送信し、アップデート用のマニフェスト XML ファイルを探します。アップデートが マニフェストに、インストールされているバージョンよりも新しいバージョンが記述されている場合、ブラウザはダウンロードしてインストールするものよりも 新しいバージョンがインストールされます。手動アップデートと同様に、新しい .crx ファイルには同じ名前で署名する必要があります。 現在インストールされているバージョンとして指定します。

URL を更新

独自の拡張機能やアプリをホストする場合は、URL に「update_url」を追加してフィールドを manifest.json ファイルを次のように変更します。

{
  "name": "My extension",
  ...
  "update_url": "http://myhost.com/mytestextension/updates.xml",
  ...
}

マニフェストを更新する

サーバーから返されるアップデート マニフェストは、次のような XML ドキュメントになります。 (ハイライトは変更が必要な部分を示します):

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://myhost.com/mytestextension/mte_v2.crx' version='2.0' />
  </app>
</gupdate>

この XML 形式は、Google のアップデート インフラストラクチャである Omaha で使用されている形式に基づいています。詳しくは、 http://code.google.com/p/omaha/ をご覧ください。拡張機能システムでは次のものが使用されます 属性をアップデート マニフェストの 要素と 要素の両方に適用します。

appid

公開鍵のハッシュに基づいて生成された拡張機能またはアプリ ID( パッケージング:拡張機能や Chrome アプリの ID は、[拡張機能] ページで確認できます (chrome://extensions).

ホストされるアプリは拡張機能ページには表示されません。アプリの ID は、 次のとおりです。

  • アプリを開きます。それには、新しいタブページでそのアプリのアイコンをクリックします。
  • JavaScript コンソールを開きます。これを行うには、レンチアイコンをクリックし、[ツール] > JavaScript コンソール
  • JavaScript コンソールに chrome.app.getDetails().id という式を入力します。「 コンソールには、アプリの ID が引用符で囲まれた文字列として表示されます。
コードベース

.crx ファイルへの URL。

version

クライアントによって、.crx codebase。「version」の値と一致する必要があります。.crx ファイルの manifest.json ファイルに指定します。

更新マニフェストの XML ファイルには、複数の拡張子を含め、複数の拡張機能に関する情報を含めることができます。 要素です。

テスト

デフォルトの更新チェック頻度は数時間ですが、 拡張機能ページの [拡張機能を今すぐ更新] ボタン。

高度な使用方法: リクエスト パラメータ

基本的な自動更新メカニズムは、サーバー アップデートをドロップするだけで、 静的 XML ファイルを Apache などのプレーン ウェブサーバーにアップロードし、リリース時にその XML ファイルを更新する 更新することもできます。

上級レベルの開発者は、 更新マニフェストをリクエストして、拡張機能の ID とバージョンを指定します。その後、同じコードを すべての拡張機能の更新 URL(代わりに動的なサーバーサイド コードを実行する URL を指す) 必要があります。

リクエスト パラメータの形式は次のとおりです。

?x=_<extension_data>_

ここで、_<extension_data>_ は次の形式の URL エンコード文字列です。

_id=<id>_&v=_<version>_

たとえば、2 つの拡張機能があり、どちらも同じ更新 URL を参照しているとします。 (http://test.com/extension_updates.php):

  • 拡張機能 1 <ph type="x-smartling-placeholder">
      </ph>
    • ID: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    • バージョン: 「1.1」
  • 拡張機能 2 <ph type="x-smartling-placeholder">
      </ph>
    • ID: 「bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb」
    • バージョン: 「0.4」

個々の拡張機能を更新するためのリクエストは次のようになります。

  • http://test.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1
  • http://test.com/extension_updates.php?x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4

固有の更新 URL ごとに、1 回のリクエストに複数の拡張機能を指定できます。上記の内容 たとえば、ユーザーが両方の拡張機能をインストールしている場合、2 つのリクエストは 単一リクエスト:

http://test.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1&x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4

同じ更新 URL を使用しているインストール済みの拡張機能の数が多く、GET リクエストに対応できる場合 URL が長すぎる(2,000 文字を超えている)場合、更新チェックで追加の GET リクエストが発行されます。 できます。

高度な使用方法: ブラウザの最小バージョン

拡張機能システムへの API の追加に伴い、アップデート版の 新しいバージョンのブラウザでのみ動作する拡張機能またはアプリのバージョン。Google は Chrome 自体は自動更新されるので、ユーザーベースの大半が更新されるまで数日かかることがあります。 新しいリリースに更新されます特定の更新が Google Chrome にのみ適用されるようにするため 特定のバージョン以降のバージョンを確認するには、「prodversionmin」<ph type="x-smartling-placeholder"></ph>属性に 要素を宣言する必要があります。次に例を示します。

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://myhost.com/mytestextension/mte_v2.crx' version='2.0' prodversionmin='3.0.193.0'/>
  </app>
</gupdate>

これにより、ユーザーが Google Chrome を実行している場合にのみバージョン 2 に自動更新されるようになります。 3.0.193.0 以降