1

我按照此处的说明进行操作,安装后我打开控制台模式进行调试,但日志卡在那里而没有任何响应:控制台只显示如下内容,没有更多输出:

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

install.rdf的是:

<?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>webmailchecker@mozilla.doslash.org</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:webmailchecker@mozilla.doslash.org">
    <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,我已将 mimemapping 配置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>

我错过了什么?自动更新不起作用。

4

1 回答 1

6

今天我再次回顾这个问题,终于解决了这个问题。如果其他人需要这个,我会更新答案。我查看了源代码 AddonUpdateChecker.jsm,我应该早点这样做。我使用 javascript 调试器来调试更新。在此之前,我真的没有看到任何日志表明我应该有 builtInCertificate。并发现它正在研究有关证书的首选项值。它们是extensions.install.requireBuiltInCertsextensions.update.requireBuiltInCerts

将这两个首选项值设置为 false 并且 udpate 有效。

其他具有不同 ssl 证书的人可能不会遇到这个问题。

于 2013-05-29T02:36:52.783 回答