Поделиться через


Настройка расширения, установленного извне, для автоматического обновления

Эта статья относится к расширениям, установленным извне; т. е. расширения, которые распространяются с помощью подхода, отличного от Центра партнеров; См . раздел Альтернативные способы распространения расширения. Эта статья не относится к расширениям, которые публикуются с помощью панели мониторинга разработчика Центра партнеров. Этот подход к распространению см. в статье Обновление расширения Microsoft Edge.

Каждые несколько часов Microsoft Edge проверяет, есть ли у каждого установленного расширения или приложения URL-адрес обновления. Чтобы указать URL-адрес обновления для расширения, используйте update_url поле в манифесте. Поле update_url в манифесте указывает на расположение, которое может завершить обновление проверка. Для каждого из них update_urlэтот URL-адрес отправляет запросы на обновленные XML-файлы манифеста. Если XML-файл манифеста обновления содержит более новое расширение или версию приложения, Microsoft Edge скачивает и устанавливает более новую версию. Тот же процесс работает и для обновлений вручную, где новый .crx файл должен быть подписан тем же закрытым ключом, что и установленная версия.

Чтобы обеспечить конфиденциальность пользователей, Microsoft Edge не отправляет заголовки Cookie с запросами манифеста автоматического обновления и игнорирует заголовки Set-Cookie в ответах на эти запросы.

При настройке расширения для автоматического обновления на компьютерах пользователей расширение предоставляет Microsoft Edge следующие преимущества:

  • Включите исправления ошибок и системы безопасности.
  • Добавьте новые функции или улучшения производительности.
  • Улучшение пользовательского интерфейса.

На веб-сайте надстроек Microsoft Edge размещаются расширения, и вы можете обновить расширение с помощью того же механизма, что и Microsoft Edge. Механизм обновления не контролируется.

(Ранее поддерживались расширения, не основанные на store. Кроме того, ранее вы одновременно обновляли собственные двоичные файлы и расширение.)

Важно!

Будьте осторожны при обновлении расширений, которые зависят от собственных двоичных файлов.

ОБНОВЛЕНИЕ URL-адреса

Если вы размещаете собственное расширение или приложение, необходимо добавить это поле в update_urlmanifest.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 Идентификатор расширения создается на основе хэша открытого ключа. Чтобы найти идентификатор расширения, откройте Microsoft Edge и ознакомьтесь с разделом edge://extensions.
codebase URL-адрес .crx файла.
version Это значение атрибута используется Microsoft Edge для определения того, следует ли загружать файл, указанный .crx параметром codebase. Он должен совпадать со значением versionmanifest.json в файле .crx файла.

XML-файл манифеста обновления может содержать сведения о нескольких расширениях, включая несколько <app> элементов.

Тестирование

Microsoft Edge автоматически проверяет наличие обновлений расширений каждые несколько часов. Чтобы немедленно обновить расширения, перейдите в edge://extensions, включите переключатель режим разработчика и нажмите кнопку Обновить .

Расширенное использование: параметры запроса

Базовый механизм обновления с помощью параметров прост. Чтобы автоматически обновить расширение, выполните приведенные далее действия.

  1. Отправьте статический XML-файл на веб-сервер, например Apache.
  2. Обновите XML-файл при выпуске новых версий расширений.

Воспользуйтесь тем фактом, что некоторые параметры, добавленные в запрос манифеста обновления, указывают на расширение ID и version. Вы можете использовать одно и то же update URL для всех расширений вместо статического XML-файла. Чтобы использовать то же update URL самое для всех расширений, укажите URL-адрес, который выполняет динамический код на стороне сервера, который тестирует параметры.

В следующем примере показан формат параметров запроса url-адреса обновления:

?x={extension_data}

В этом примере представляет собой строку в кодировке URL-адреса, {extension_data} которая использует следующий формат.

id={id}&v={version}

Например, следующие два расширения указывают на один и тот же URL-адрес http://contoso.com/extension_updates.phpобновления .

  • Расширение 1
    • ИД: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    • URL-адрес обновления: http://contoso.com/extension_updates.php
    • Версия: 1.1
  • Расширение 2
    • ИД: 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-адреса обновления. В следующем примере предыдущие запросы объединяются в один запрос:

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

Если вы отправляете один запрос и количество установленных расширений, использующих один и тот же URL-адрес обновления, слишком длинное, обновление проверка выдает больше GET запросов. URL-адрес GET запроса слишком длинный, если он содержит около 2000 символов.

В будущем выпуске вместо нескольких GET запросов может быть выдан один POST запрос с параметрами запроса в тексте POST .

Расширенное использование: минимальная версия браузера

По мере выпуска новых API для системы расширений Microsoft Edge может потребоваться выпустить обновленную версию расширения или приложения, которая работает только с более новыми версиями Microsoft Edge. При автоматическом обновлении Microsoft Edge может потребоваться несколько дней, прежде чем большинство пользователей обновится до этого нового выпуска.

Чтобы убедиться, что определенное обновление применяется только к версиям Microsoft Edge, которые являются текущими или более новыми, чем определенная версия, добавьте prodversionmin атрибут в манифест обновления.

Например, в следующем коде prodversionmin значение атрибута 3.0.193.0 указывает, что приложение автоматически обновляется до версии 2.0 , только если пользователь использует Microsoft Edge 3.0.193.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 и используемой в соответствии с условиями, описанными в международной лицензии Creative Commons Attribution 4.0. Исходная страница находится здесь.

Creative Commons License Эта работа лицензируется по международной лицензии Creative Commons Attribution 4.0.