• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 8, comments - 12, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            Firefox plugin的安裝與更新

            Posted on 2009-05-19 13:20 eyesmart 閱讀(3404) 評論(0)  編輯 收藏 引用 所屬分類: Basic Knowledge


                  上篇文章說了
            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="support@mypage.com"

                               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="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"

                               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="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"

                               em:minVersion="2.0"

                               em:maxVersion="3.0.*"

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

                               em:updateHash="sha1:665ff233cfdcb5ed610555f7777a4961931873a3" />

             <RDF:Description RDF:about="urn:mozilla:extension:support@mypage.com"

                               em:signature="MIGTMA0GCSqGSIb3DQEBDQUAA4GBAJo4Sp+iJQSGesXd56BpDtTAWk0LcaSXKiK1+uo1pk
                                    QFja+q6rJweNyu8A6o5zQmhIxOFsT0Oapz5KoATV8JilOmCJE8H+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,然后打開錯
            誤控制臺,這樣就可以查看插件更新的具體錯誤了。

            亚洲中文精品久久久久久不卡| 久久婷婷五月综合97色直播| 精品永久久福利一区二区 | 国产日韩久久免费影院| 亚洲狠狠久久综合一区77777| 国产成人精品久久亚洲| 日本精品久久久久久久久免费| 久久精品成人欧美大片| 99久久无码一区人妻| 久久只这里是精品66| 99re久久精品国产首页2020| 亚洲国产成人精品无码久久久久久综合| 一级女性全黄久久生活片免费| 精品无码久久久久久尤物| 日本久久中文字幕| 久久综合丝袜日本网| 久久精品国产亚洲av麻豆蜜芽| 99久久无码一区人妻| 久久久久亚洲AV无码麻豆| 欧美麻豆久久久久久中文| 嫩草影院久久国产精品| 久久亚洲精精品中文字幕| 狠狠色丁香久久婷婷综合_中| 日本久久久久久中文字幕| 久久亚洲精品国产精品| 久久受www免费人成_看片中文| 99久久国产热无码精品免费久久久久| 无码人妻久久一区二区三区| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 人妻少妇久久中文字幕| 性做久久久久久久久浪潮| 久久国产成人| 久久国产视频网| 国产午夜电影久久| 国产情侣久久久久aⅴ免费| 亚洲国产精品一区二区久久hs| 99久久综合国产精品免费| 热久久最新网站获取| 久久久久婷婷| 伊人久久大香线蕉AV一区二区| 人人狠狠综合88综合久久|