Дополнение Firefox. Установить, обновить, удалить вручную - PullRequest
1 голос
/ 26 марта 2010

Мое приложение устанавливает надстройку Firefox (путем копирования .xpi в [FF_inst_dir]\extensions).

Это приложение периодически имеет обновления (.xpi с новой версией).

Как его можно правильно установить (как использовать update.rdf)?

Ответы [ 2 ]

3 голосов
/ 26 марта 2010

Читали ли вы статью разработчика Mozilla " Управление версиями, обновление и совместимость расширений "?

По сути, ваш манифест установки должен иметь updateURL, который указывает на обновление RDF. Обновление RDF будет содержать список каждой доступной версии и с какой версией приложения Mozilla оно совместимо. Вот действительно сокращенная версия их примера:

<?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:foobar@developer.mozilla.org">
    <em:updates>
      <RDF:Seq>
        <RDF:li>
          <RDF:Description>
            <em:version>2.2</em:version>
            <em:targetApplication>
              <RDF:Description>
                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
                <em:minVersion>1.5</em:minVersion>
                <em:maxVersion>2.0.0.*</em:maxVersion>
                <em:updateLink>https://www.mysite.com/foobar2.2.xpi</em:updateLink>
             <em:updateInfoURL>http://www.mysite.com/updateinfo2.2.xhtml</em:updateInfoURL>
              </RDF:Description>
            </em:targetApplication>
          </RDF:Description>
        </RDF:li>
        <RDF:li>
          <RDF:Description>
            <em:version>2.5</em:version>
            <em:targetApplication>
              <RDF:Description>
                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
                <em:minVersion>1.5</em:minVersion>
                <em:maxVersion>2.0.0.*</em:maxVersion>
                <em:updateLink>http://www.mysite.com/foobar2.5.xpi</em:updateLink>
           <em:updateHash>sha1:78fc1d2887eda35b4ad2e3a0b60120ca271ce6e6</em:updateHash>
              </RDF:Description>
            </em:targetApplication>
          </RDF:Description>
        </RDF:li>
      </RDF:Seq>
    </em:updates>
  </RDF:Description>
</RDF:RDF>

Таким образом, в основном ваш установочный манифест указывает на этот файл, и когда Firefox открывается, он проверяет этот файл, чтобы увидеть, является ли версия надстройки самой последней версией, указанной в обновлении RDF. Обновление RDF - это просто список версий в порядке их выпуска, с основной информацией, например, с какой версией Firefox он совместим, и любыми другими деталями, которые вы хотите добавить.

1 голос
/ 26 марта 2010

Ваш вопрос немного неопределенный, чтобы дать вам точный ответ, поэтому лучшее, что я могу сделать, - указать официальную документацию по этому вопросу: https://developer.mozilla.org/en/Extension_Versioning,_Update_and_Compatibility

Однако я добавлю, что на сегодняшний день самый простой способ автоматически установить и обновить расширение - это использовать addons.mozilla.org. В противном случае вам придется предоставить свой собственный сервер обновлений, использующий SSL (что означает, что вам придется либо покупать, либо самостоятельно подписывать сертификат SSL). Это не подлежит отмене (я сделал это один раз, но слишком давно, чтобы я помнил детали), но, возможно, это больше проблем, чем стоит, учитывая существование этой простой альтернативы.

Если вы не хотите проходить через проверку Mozilla, вы все равно можете разместить его на addons.mozilla.org: он будет помечен как экспериментальный и доступен для установки только зарегистрированным пользователям .

...