次の方法で共有


外部にインストールされた拡張機能を自動的に更新するように設定する

この記事は、外部にインストールされた拡張機能に適用されます。つまり、パートナー センター以外のアプローチを介して配布される拡張機能。 拡張機能を配布する別の方法に関するページを参照してください。 この記事は、 パートナー センター開発者ダッシュボードを使用して発行する拡張機能には適用されません。その配布方法については、「 Microsoft Edge 拡張機能を更新する」を参照してください。

数時間ごとに、Microsoft Edge は、インストールされている拡張機能またはアプリごとに更新 URL があるかどうかを確認します。 拡張機能の更新 URL を指定するには、マニフェストの update_url フィールドを使用します。 マニフェストの [update_url] フィールドは、更新プログラムのチェックを完了できる場所を指します。 この URL は、 update_urlごとに更新されたマニフェスト XML ファイルの要求を送信します。 更新マニフェスト XML ファイルに新しい拡張機能またはアプリのバージョンが一覧表示されている場合、Microsoft Edge は新しいバージョンをダウンロードしてインストールします。 手動更新でも同じプロセスが機能します。ここで、新しい .crx ファイルは、現在インストールされているバージョンと同じ秘密キーで署名する必要があります。

ユーザーのプライバシーを維持するために、Microsoft Edge はマニフェスト要求を自動更新する Cookie ヘッダーを送信せず、これらの要求への応答の Set-Cookie ヘッダーは無視します。

ユーザーのマシンで自動的に更新されるように拡張機能を設定すると、拡張機能は次の利点を Microsoft Edge と共有します。

  • バグとセキュリティの修正を組み込む。
  • 新機能またはパフォーマンスの強化を追加します。
  • ユーザー インターフェイスを改善します。

Microsoft Edge アドオン Web サイトでは拡張機能がホストされており、Microsoft Edge と同じメカニズムを使用して拡張機能を更新できます。 更新メカニズムは制御しません。

(以前は、ストアベース以外の拡張機能がサポートされていました。また、以前はネイティブ バイナリと拡張機能を同時に更新しました)。

重要

ネイティブ バイナリに依存する拡張機能を更新するときは注意してください。

URL の更新

独自の拡張機能またはアプリをホストする場合は、 update_url フィールドを manifest.json ファイルに追加する必要があります。 次のコード スニペットは、 update_url フィールドの例を示しています。

{
  "name": "My extension",
  ...
  "update_url": "http://contoso.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://contoso.com/mytestextension/mte_v2.crx' version='2.0' />
  </app>
</gupdate>

更新されたマニフェスト XML ファイルは、次の属性を定義します。

属性 詳細
appid 拡張 ID は、公開キーのハッシュに基づいて生成されます。 拡張機能の ID を見つけるには、Microsoft Edge を開き、「 edge://extensions」を参照してください。
codebase .crx ファイルの URL。
version この属性値は、codebaseで指定された.crx ファイルをダウンロードする必要があるかどうかを判断するために Microsoft Edge によって使用されます。 .crx ファイルのmanifest.json ファイル内の version の値と一致する必要があります。

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

テスト

Microsoft Edge では、数時間ごとに拡張機能の更新プログラムが自動的にチェックされます。 拡張機能をすぐに更新するには、[ edge://extensions] に移動し、[ 開発者モード ] トグルをオンにして、[ 更新 ] ボタンをクリックします。

高度な使用法: 要求パラメーター

パラメーターを使用して更新する基本的なメカニズムは簡単です。 拡張機能を自動的に更新するには:

  1. Apache などの Web サーバーに静的 XML ファイルをアップロードします。
  2. 拡張機能の新しいバージョンをリリースするときに XML ファイルを更新します。

更新マニフェスト要求に追加されたパラメーターの中には、拡張機能の IDversionが示されているものもあります。 静的 XML ファイルではなく、すべての拡張機能に同じ update URL を使用できます。 すべての拡張機能で同じ update URL を使用するには、パラメーターをテストする動的サーバー側コードを実行する URL をポイントします。

次の例では、更新 URL の要求パラメーターの形式を示します。

?x={extension_data}

この例では、 {extension_data} は、次の形式を使用する URL でエンコードされた文字列です。

id={id}&v={version}

たとえば、次の 2 つの拡張機能はどちらも同じ更新 URL http://contoso.com/extension_updates.phpを指しています。

  • 拡張機能 1
    • ID: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    • 更新 URL: http://contoso.com/extension_updates.php
    • バージョン: 1.1
  • 拡張機能 2
    • ID: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
    • 更新 URL: http://contoso.com/extension_updates.php
    • バージョン: 0.4

次の例は、各拡張機能を更新する要求です。

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

一意の更新 URL ごとに、1 つの要求に複数の拡張機能を一覧表示することもできます。 次の例では、前の要求を 1 つの要求にマージします。

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

1 つの要求を送信し、同じ更新 URL を使用するインストールされている拡張機能の数が長すぎる場合、更新チェックにより多くのGET要求が発行されます。 GET要求 URL が約 2,000 文字の場合は長すぎます。

今後のリリースでは、複数のGET要求を発行する代わりに、POST本文に要求パラメーターを含む 1 つのPOST要求が発行される可能性があります。

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

Microsoft Edge 拡張機能システム用の新しい API がリリースされるため、新しいバージョンの Microsoft Edge でのみ動作する拡張機能またはアプリの更新されたバージョンをリリースする必要がある場合があります。 Microsoft Edge が自動的に更新されると、ほとんどのユーザーがその新しいリリースに更新されるまでに数日かかることがあります。

特定の更新プログラムが、特定のバージョンよりも最新または新しい Microsoft Edge バージョンにのみ適用されるようにするには、更新マニフェストに prodversionmin 属性を追加します。

たとえば、次のコードでは、3.0.193.0prodversionmin属性値は、ユーザーが Microsoft Edge 3.0.193.0 以降を実行している場合にのみ、アプリがバージョン 2.0に自動的に更新されるように指定します。

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

関連項目

Chrome Dev ドキュメント:

注:

このページの一部は、 Google によって 作成および共有され、 クリエイティブ・コモンズ属性 4.0 国際ライセンスに記載されている条件に従って使用される作業に基づく変更です。 元のページはこちらにあります。

クリエイティブ・コモンズ・ライセンス この作品は 、クリエイティブ・コモンズ属性4.0国際ライセンスに基づきライセンスされています