Как подключить расширения автообновления Firefox к приложению

Расширение FF нашей компании поставляется с установочным пакетом нашего приложения (т. Е. Оно связано с приложением, а не сборкой Firefox). Во время установки расширение в настоящее время добавляется в Firefox с помощью реестра Windows (новый ключ вHKCU/Software/Mozilla/Firefox/Extensions).

Моя задача - включить автоматическое обновление для этих расширений. Для этого я положилupdateUrl вpackage.jsonсоздалupdate.rdf наряду с более новой версией расширения. В результате Firefox находит обновленное расширение, но не может его обновить. Журналы Firefox:

1464888839764   addons.update-checker   DEBUG   Requesting https://path/update.rdf
1464888840017   addons.update-checker   DEBUG   Found an update entry for <My Addon Name> version 1.2.3
1464888840022   addons.xpi      DEBUG   Found an existing AddonInstall for <My Addon Name>
1464888840024   addons.manager  DEBUG   Found update for add-on <My Addon Name>
1464888840026   addons.manager  DEBUG   onUpdateFinished for <My Addon Name>

Напротив, если MyAddonName.xpi установлен вручную (т.е. без использования реестра Windows), автоматическое обновление работает нормально.

Вопросы это:
Если Firefox намеренно пропускает автоматическое обновление установленных расширений реестра, как можно установить наше связанное расширение с включенным обычным автоматическим обновлением дополнения Firefox?

Пока я нашел это: всветлячок-44,0 \ инструментарий \ mozapps \ расширений \ Internal \ XPIProvider.jsm

if (!this._installLocation.locked && !this.pendingUninstall) {
  // Add-ons that are installed by a file link cannot be upgraded
  if (!this._installLocation.isLinkedAddon(this.id)) {
    permissions |= AddonManager.PERM_CAN_UPGRADE;
  }
  permissions |= AddonManager.PERM_CAN_UNINSTALL;
}

Это намеренное поведение отключения обновления для надстроек, установленных из локальных папок.

Мы работаем с некоторыми ограничениями:

Установка должна работать для учетной записи Windows с разрешениями пользователя. Другими словами,% программные файлы% недоступны для записи, а также все, что требует разрешений, не предоставленных обычным пользователям (т.е. при установке не может предполагаться, что учетная запись имеет расширенные возможности опытного пользователя или администратора).Связанное расширение должно быть установлено во все существующие в настоящее время профили Firefox для пользователя, устанавливающего приложение.Другие пользователи системы не должны быть затронуты.Firefox должен автоматически обновлять связанное расширение через обычный процесс, который Firefox использует для автоматического обновления надстроек.Автообновление расширения Firefox не может использовать любые возможности автообновления, существующие в нашем приложении. Такая возможность может существовать или не существовать, но для расширения должна использоваться обычная возможность автоматического обновления надстройки Firefox.Нам нужен способ отключить расширение Firefox во всех профилях нашего приложения.

Ответы на вопрос(1)

Ваш ответ на вопрос