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">
<?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 以降