Firefox plugin的安装与更新


      上篇文章说了
firefox plugin在不同平台之间的构建,接下来写下如何安装。

       Pluginextension的安装都可采用xpinstall文件来安装。plugin文件在windows上为dlllinux上为so
mac os x上为bundleWindows版的plugin文件名要以np开头,否则firefox不会识别。首先在当前目录下新建
文件夹
pluginsinstall.rdf文件,将plugin文件放入plugins文件夹中,install.rdf文件是个xml格式,因此在各个
平台上的安装更新都没有差异性。在
https://developer.mozilla.org/en/Install_Manifests中,你可以获得rdf的一切
参数规则。给个范例:

<?xml version="1.0"?>

<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#"

         xmlns:NC="http://home.netscape.com/NC-rdf#"

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

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

                   em:id="[email protected]"

                   em:name="myplugin"

                   em:version=" 1.0.0 .1"

                   em:type="2"

                   em:description="mydescription"

                   em:creator="myname"

                   em:homepageURL="http://www.mypage.com"

                   em:updateURL="http://www.mypage.com/plugins/update.rdf"

                   em:updateKey="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMsAc9rp4UU0NDaR5oCGtN6JaHP
                                    3b9/Lkc7rZ2fCmXK5Ma5glpTrbqWAAijOc5v2H+BuXLPZaCdN/kjs+okPCeTcyzVuuP3XmV
                                    Fp+rAx49fDn9Rz0JldZiO5hvAygTK4bXRq7qegrxm/qYaunzs23E8W0tJ2LXHb5zqdswypXnZ
                                    wIDAQAB">

    <em:targetApplication RDF:resource="rdf:#$ZfNCh"/>

 </RDF:Description>

 <RDF:Description RDF:about="rdf:#$ZfNCh"

                   em:id="{ec 8030f 7-c 20a -464f -9b0e -13a 3a 9e97384}"

                   em:minVersion="2.0"

                   em:maxVersion="3.0.*" />

</RDF:RDF>

最下面这一段表示适用于firefox2.0版本到3.0.*的所有版本,可以修改这3个参数将plugin用于mozilla的其他
产品。

       编写完install.rdf后,将其与plugins文件夹一起打包成zip格式,并将zip后缀名改为xpi,然后只要给出xpi
URI,那么就可以安装xpi了。只要plugin编写正确,这里安装很容易成功的,然后再地址栏输入
about:plugins,
就能看见plugin的信息了。

       下面来看看如何更新,firefox插件更新有3种方式,第一是通过addons.mozilla.org进行更新,这种方式使
得你不需要对插件进行任何更新说明,因为
firefoxaddons网站会帮你完成所有的这一切,但这样必须要取
mozilla的许可才行,所以放弃。第二种方式是在install.rdf中添加updateURL,但要用https来进行更新,因
https要用到mozillaCA颁发的证书,配置起来太麻烦,也放弃。第三种办法是在install.rdf中添加
updateURL
,用http来进行更新,但是要用公钥的方式进行认证,所以加上updateKey这个字段,防止有
人用虚假的插件进行欺骗。
updateKey要用mozilla提供的mccoy进行生成,具体用法可以参考官方网站。

       update.rdf中列出了各个可用更新版本和其URL地址,范例如下:

<?xml version="1.0"?>

<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#"

         xmlns:NC="http://home.netscape.com/NC-rdf#"

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

 <RDF:Description RDF:about="rdf:#$3gNCh"

                   em:version=" 2.0.0 .1">

    <em:targetApplication RDF:resource="rdf:#$6gNCh"/>

 </RDF:Description>

 <RDF:Seq RDF:about="rdf:#$2gNCh">

    <RDF:li RDF:resource="rdf:#$3gNCh"/>

 </RDF:Seq>

 <RDF:Description RDF:about="rdf:#$6gNCh"

                   em:id="{ec 8030f 7-c 20a -464f -9b0e -13a 3a 9e97384}"

                   em:minVersion="2.0"

                   em:maxVersion="3.0.*"

                   em:updateLink="http://www.mypage.com/plugins/npmyplugin.xpi"

                   em:updateHash="sha1:665ff233cfdcb5ed 610555f 7777a 4961931873a 3" />

 <RDF:Description RDF:about="urn:mozilla:extension:[email protected]"

                   em:signature="MIGTMA0GCSqGSIb3DQEBDQUAA4GBAJo4Sp+iJQSGesXd56BpDtTAWk0LcaSXKiK1+uo1pk
                        QFja+q6rJweNyu 8A 6o5zQmhIxOFsT0Oapz5KoATV8JilOmCJE8H+DjXUMYdaqzih0VPBZAAXE
                        wxphIN5ctnhwz2rN9nSGF18PSu7WuBIQIoWd1E0+ujf4+t/lnQCXqJHlK">

    <em:updates RDF:resource="rdf:#$2gNCh"/>

 </RDF:Description>

</RDF:RDF>

       updateHash是用来对要更新的文件的一个hash,这里用的算法是sha1,可以通过GNUsha1sum工具来生
成,最后要用
mccoy对这个文件进行签名。OK了,只要有新的版本就可以在firefox上进行更新了。如果更新
发生错误,那么就打开
about:config页面,修改其中的一个字段extensions.logging.enabledtrue,然后打开错
误控制台,这样就可以查看插件更新的具体错误了。

你可能感兴趣的:(Firefox plugin的安装与更新)