Автоматическое обновление расширения Firefox не работает

Я следовал инструкциям здесь и после установки открыл режим консоли для отладки, но журнал застрял там без какого-либо ответа: консоль просто показывает что-то вроде следующего и больше ничего не выводит:

*** LOG addons.updates: Requesting https://www.extension.host.com/update.rdf

My install.rdf is:

<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
     xmlns:em="http://www.mozilla.org/2004/em-rdf#">

  <Description about="urn:mozilla:install-manifest">

    <em:id>[email protected]</em:id>
    <em:name>WebMail Checker for Firefox</em:name>
    <em:version>1.0</em:version>
    <em:description>WebMail Checker</em:description>
    <em:updateURL>https://www.extension.host.com/update.rdf</em:updateURL>

    <!-- Firefox -->
    <em:targetApplication>
      <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
        <em:minVersion>3.6</em:minVersion>
        <em:maxVersion>23.*</em:maxVersion>
      </Description>
    </em:targetApplication>
  </Description>
</RDF>

И update.rdf это:

<?xml version="1.0" encoding="UTF-8"?>

<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:em="http://www.mozilla.org/2004/em-rdf#">

  <RDF:Description about="urn:mozilla:extension:[email protected]">
    <em:updates>
      <RDF:Seq>

        <!-- Each li is a different version of the same add-on -->
        <RDF:li>
          <RDF:Description>
            <em:version>1.0</em:version> 
            <em:targetApplication>
              <RDF:Description>
                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
                <em:minVersion>1.5</em:minVersion>
                <em:maxVersion>23.*</em:maxVersion>
                <em:updateLink>https://www.extension.host.com/firefox.xpi</em:updateLink>

              </RDF:Description>
            </em:targetApplication>
          </RDF:Description>
        </RDF:li>

        <RDF:li>
          <RDF:Description>
            <em:version>2.0</em:version>
            <em:targetApplication>
              <RDF:Description>
                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
                <em:minVersion>1.5</em:minVersion>
                <em:maxVersion>23.*</em:maxVersion>
                <em:updateLink>https://www.extension.host.com/firefox_2.0.xpi</em:updateLink>
              </RDF:Description>
            </em:targetApplication>
          </RDF:Description>
        </RDF:li>

      </RDF:Seq>
    </em:updates>
  </RDF:Description>
</RDF:RDF>

На стороне сервера и файл update.rdf, и файл xpi возвращаются как javax.ws.rs.core.Response, и я настроил MIME-отображение в web.xml следующим образом:

<mime-mapping>
    <extension>xpi</extension>
    <mime-type>application/x-xpinstall</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>rdf</extension>
    <mime-type>text/xml</mime-type>
</mime-mapping>

Что-нибудь я пропустил? Автоматическое обновление просто не работает.


person user2381038    schedule 14.05.2013    source источник
comment
Это странно - то, как я читал AddonUpdateChecker.jsm, есть только один сценарий, когда он выводит это одно сообщение журнала и ничего больше. Это должно происходить только в том случае, если <em:updates> пусто. Может в кеше застряла более старая версия вашего update.rdf?   -  person Wladimir Palant    schedule 14.05.2013
comment
@Wladimir Palant Спасибо за ответ. Застрял в кеше? Моя первая версия update.rdf такая же, как и выше. Я пытался очистить кеш браузера и историю раньше. Кэш, о котором вы упомянули, я очистил? И я могу получить доступ к update.rdf, набрав в адресной строке   -  person user2381038    schedule 14.05.2013
comment
Тогда неверное предположение. У меня нет идей, ваши настройки кажутся правильными, и определенно должно быть больше сообщений в журнале.   -  person Wladimir Palant    schedule 14.05.2013
comment
Спасибо. На стороне сервера, когда я нажимаю «Проверить наличие обновлений», я вижу, что URL-адрес обновления обрабатывается, но я не вижу что-то вроде записи обновления, обнаруженной с консоли. я проверю больше   -  person user2381038    schedule 14.05.2013
comment
@WladimirPalant Я попытался загрузить расширение вручную с помощью updateLink https://localhost:8443/firefox.xpi, введя его в адресную строку Firefox. Но я получил ошибку, как будто надстройка не может быть загружена из-за сбоя подключения на локальном хосте. Есть ли у вас какие-либо идеи? Но на стороне сервера была выполнена операция извлечения файла.   -  person user2381038    schedule 20.05.2013
comment
Извините, игнорируйте. Это ошибка сервера. В настоящее время извлекается только файл update.rdf, но после этого updateLink не извлекается.   -  person user2381038    schedule 20.05.2013


Ответы (1)


Сегодня я снова оглядываюсь на эту проблему и, наконец, решил это. И я обновляю ответ на случай, если это кому-то еще понадобится. Я просмотрел исходный код AddonUpdateChecker.jsm, что я должен сделать это раньше. Я использовал отладчик javascript для отладки обновления. До этого я действительно не видел никаких журналов, указывающих на то, что я должен был установить файл buildInCertificate. И обнаружил, что он просматривает значения pref о сертификатах. Это extensions.install.requireBuiltInCerts и extensions.update.requireBuiltInCerts.

Установите для этих двух значений prefs значение false, и обновление сработает.

Другие с другим сертификатом ssl могут не столкнуться с этой проблемой.

person user2381038    schedule 29.05.2013