Microsoft Edge で拡張機能を自動的に更新する

注:

この記事は、 パートナー センター ダッシュボードを使用して発行する拡張機能には適用されません。 ダッシュボードを使用して、更新されたバージョンをユーザーと Microsoft Edge アドオン Web サイトにリリースできます。 詳細については、「 Microsoft Edge 拡張機能を更新する」を参照してください。

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

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

以前は、ストアベース以外の拡張機能がサポートされていました。 また、以前は、ネイティブ バイナリと拡張機能を同時に更新しました。 Microsoft Edge アドオン Web サイトで拡張機能がホストされ、Microsoft Edge と同じメカニズムを使用して拡張機能を更新できるようになりました。 更新メカニズムは制御しません。

重要

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

概要

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

注:

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

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 この属性値は、 で指定されたファイルをダウンロード .crx する必要があるかどうかを判断するために Microsoft Edge によって codebase使用されます。 ファイルのファイル内の の version 値と manifest.json 一致する .crx 必要があります。

更新マニフェスト 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 の要求を発行する代わりに、要求パラメーターを本文に含む 1 つの POST 要求が POST 発行される可能性があります。

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

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

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

たとえば、次のコードでは、 の3.0.193.0属性値は、prodversionminユーザーが 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>

注:

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

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