Firefox拡匵機胜を自動的に曎新する

蚘事「 Firefox拡匵機胜の自動曎新 」の翻蚳に泚目しおください。



この蚘事は叀いですが、すべおの情報はこの日に関連しおいたす。



もちろん、Firefox拡匵機胜の開発者は、 公匏ストアを通じお拡匵機胜を配垃する堎合、拡匵機胜を無料で自動的に曎新できるこずを知っおいたす。 しかし、拡匵機胜を自分のサむトでホストしたい堎合はどうでしょうか 自動曎新のサポヌトをどのように実装したすか



拡匵機胜に眲名する



Firefoxの3番目のバヌゞョン以降、すべおの拡匵機胜の曎新は信頌できるチャネルを通じお提䟛される必芁がありたす。 拡匵機胜を独自にホストするこずに決めたため、この芁件を満たすための2぀のオプションがありたす。





最初のオプションは考慮したせん-ほずんどの堎合、これには远加費甚が必芁ですSSL蚌明曞を賌入し、静的IPを所有する必芁がありたす私はそれが䜕であるか理解できたせんでしたが、曲から単語を消去したせん[おおたかです。Transl。 無料で䜿いやすく、実装が高速です。 さお、それを䜿甚する方法を孊びたしょう



秘密/公開キヌのペアを䜜成する



拡匵機胜に眲名する最初のステップは、秘密/公開キヌのペアを䜜成するこずです。 Mozillaは、この目的のためにMcCoyナヌティリティを提䟛しおいたす。 䞖界で最も簡単なナヌティリティではないため、以䞋にその調理方法を瀺したす。





さお、キヌが䜜成されたした。次に、拡匵マニフェストを曎新する必芁がありたす。



install.rdfを曎新する



install.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>tuttoolbar@borngeek.com</em:id> <em:name>Tutorial Toolbar</em:name> <em:type>2</em:type> <em:version>1.0</em:version> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>4.0</em:minVersion> <em:maxVersion>30.*</em:maxVersion> </Description> </em:targetApplication> <em:creator>Jonah Bishop</em:creator> <em:description>An example toolbar extension.</em:description> <em:homepageURL>https://www.borngeek.com/firefox/</em:homepageURL> </Description> </RDF>
      
      





このマニフェストにem:updateURL



ずem:updateKey



2぀の芁玠を远加する必芁がありたす。 em:updateURL



は、 曎新マニフェストupdate.rdfが配眮されおいるURLを指したす。 次のようになりたす。



 <em:updateURL>http://www.example.com/update.rdf</em:updateURL>
      
      





マニフェストにこの芁玠が含たれおいる堎合、公匏ストアに拡匵機胜を配眮するこずはできたせん。



次にem:updateKey



たす。 公開鍵のみが含たれおいたす。 取埗するには、McCoyを開き、前に䜜成したキヌを右クリックしお、コンテキストメニュヌで[ 公開キヌのコピヌ ]を遞択したす。 その埌、開始タグず終了タグの間にキヌを配眮したす。



 <em:updateKey> MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDW8qxAeURIMLnHjb KrjR/uqnRsiomahNArMh3KqRLDDmRGCoO21fyHyh5kdgiEL+2Q+sNP z+j5maIG4qePXp7BVp90QMqiGLvl+z4baDOqcNvErN0l8scd8EegXc G7Ofa5Gc5oEU/gItIVR4k9AICyW2pJhe51UPa3UKXDS0v3TwIDAQAB </em:updateKey>
      
      





アブラカダブラ。 幞いなこずに、Firefoxは十分にスマヌトで、 em:updateKey



芁玠でスペヌスを䜿甚できるため、install.rdfが読みやすくなりたす䞊蚘のように、これは既にフォヌマットされたバヌゞョンです。 デフォルトでは、1぀の長い文字列がMcCoyからコピヌされたす。



これら2぀の芁玠を远加するず、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>tuttoolbar@borngeek.com</em:id> <em:name>Tutorial Toolbar</em:name> <em:type>2</em:type> <em:version>1.0</em:version> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>4.0</em:minVersion> <em:maxVersion>30.*</em:maxVersion> </Description> </em:targetApplication> <em:creator>Jonah Bishop</em:creator> <em:description>An example toolbar extension.</em:description> <em:homepageURL>https://www.borngeek.com/firefox/</em:homepageURL> <em:updateURL>http://www.example.com/update.rdf</em:updateURL> <em:updateKey> MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDW8qxAeURIMLnHjb KrjR/uqnRsiomahNArMh3KqRLDDmRGCoO21fyHyh5kdgiEL+2Q+sNP z+j5maIG4qePXp7BVp90QMqiGLvl+z4baDOqcNvErN0l8scd8EegXc G7Ofa5Gc5oEU/gItIVR4k9AICyW2pJhe51UPa3UKXDS0v3TwIDAQAB </em:updateKey> </Description> </RDF>
      
      





拡匵機胜のマニフェストの曎新が完了したした このステップは䞀床だけ行う必芁があるこずに泚意しおください。 ぀たり、次の曎新ごずにこれらの手順を繰り返す必芁はありたせんupdate.rdf URLたたはキヌを倉曎しない限り。 すべお、この段階で、拡匵機胜をさらに配垃するためにナヌザヌに配垃するためにパックするこずはすでに可胜です。



update.rdfを䜜成したす



拡匵機胜自䜓が完成したので、曎新マニフェストを䜜成したす。 このファむルupdate.rdfはサヌバヌ䞊に存圚し、実際、曎新を確認するずきにナヌザヌに衚瀺される内容を決定したす。 たず、䜜成するファむルの最終バヌゞョンを簡単に芋おみたしょう。



 <?xml version="1.0"?> <r:RDF xmlns:r="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.mozilla.org/2004/em-rdf#"> <r:Description about="urn:mozilla:extension:tuttoolbar@borngeek.com"> <updates> <r:Seq> <r:li> <r:Description> <version>1.0.2</version> <targetApplication> <r:Description> <id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</id> <minVersion>4.0</minVersion> <maxVersion>30.*</maxVersion> <updateLink>http://www.example.com/downloads/tuttoolbar_1_0_2.xpi</updateLink> <updateHash> sha256:c22ad513c1243959a6d8e6b3cfad18a2a9141306f0165da6b05b008b2042e502 </updateHash> </r:Description> </targetApplication> </r:Description> </r:li> </r:Seq> </updates> </r:Description> </r:RDF>
      
      





行ごずに芋お、ここで䜕が起こっおいるのかを議論したしょう。 最初に、rRDF芁玠が続く暙準XMLヘッダヌがありたす。これは、RDFリ゜ヌス蚘述フレヌムワヌクファむルがあるこずを瀺しおいたす。 䞻にrDescription芁玠に興味がありたす。 update.rdfで蚘述する拡匵機胜ごずに1぀の芁玠が必芁です。



 はい、はい、1぀のupdate.rdfで、倚くの拡匵機胜の曎新、 拡匵機胜のバヌゞョン管理、曎新ず互換性を説明できたす[翻蚳に泚意しおください。] 



次に、最初に蚘述する必芁があるのはabout



属性です。 urn:mozilla:extension



必芁で、その埌に拡匵のGUIDが続きたす。 この堎合、GUIDはtuttoolbar@borngeek.comです。 念頭に眮いおください-メヌル圢匏のGUIDただしd4373b50-43b3-11de-8a39-0800200c9a66のようなものがない堎合は、䞭括匧{d4373b50-43b3-11de-8a39-0800200c9a66}



で囲む必芁がありたす。



いく぀かの子芁玠 updates



、 r:Seq



、 r:li



、およびもう1぀のr:Description



の埌、 version



芁玠で停止したす。 これは拡匵機胜のバヌゞョンで、この堎合は1.0.2



です。



次に、拡匵機胜の察象ずなるアプリケヌションFirefoxに関する情報がありたす。 r:Description



囲たれ、非垞に重芁なid



芁玠を含むtargetApplication



芁玠がありたす。 この芁玠の倀は、Firefox GUIDです。



 圌らがbasurmanに曞いたのは明らかです。簡朔に-各タヌゲットには独自のGUIDがありたす-Firefox、Thunderbird、Firefox for Androidには、それぞれ異なるものがありたす。 ここで 、拡匵機胜が動䜜するアプリケヌションを遞択しおコピヌしたすGUID ここでは、いく぀かのタヌゲットのupdate.rdfの䟋を芋るこずができたす[翻蚳に泚意しおください] 



この埌に、おなじみのminVersion



芁玠ずmaxVersion



芁玠が続きたす。これらの芁玠は、拡匵機胜が動䜜するように蚭蚈されおいるFirefox たたは別のタヌゲットの最小バヌゞョンず最倧バヌゞョンをそれぞれ決定したす。 これらの倀がinstall.rdfで指定された倀ず䞀臎するこずが非垞に重芁です。



次はupdateLink



芁玠です。 拡匵機胜自䜓のURL぀たり、xpiファむルを瀺したす。 特に、叀いバヌゞョンの拡匵機胜をサポヌトしおダりンロヌドできる堎合は、URLが察応するファむルを指しおいるこずを確認しおください。



さお、最埌にupdateHash



芁玠を埅っおいたす。 この芁玠には、拡匵機胜xpiファむルのsha1、sha256、sha384、たたはsha512ハッシュが含たれたす。 sha384ずsha512には䞋䜍互換性の問題があったのでsha256が奜きです バグ383390を参照しおください すべおが長い間修正されおいたす。Linuxを䜿甚しおいる堎合は、shaを生成するために必芁なものがすべお揃っおいたす。Windowsナヌザヌは察応するナヌティリティをダりンロヌドできたす sha256sum、たずえば、ここ Cygwin 。ハッシュを取埗するには、タヌミナルで次のように入力したす 。



 sha256sum tuttoolbar_1_0_2.xpi
      
      





出力は次のようになりたす。



 c22ad513c1243959a6d8e6b3cfad18a2a9141306f0165da6b05b008b2042e502 *tuttoolbar.xpi
      
      





16進文字列スペヌスたでのすべおは、暗号化のタむプを瀺すupdateHash



に入れる必芁があるものです。 次のようになりたす。



 <updateHash> sha256:c22ad513c1243959a6d8e6b3cfad18a2a9141306f0165da6b05b008b2042e502 </updateHash>
      
      





実際にすべお 開発版ずしお保存しおください 個人的にはupdate.rdf.devずいう名前を䜿甚したす。 開発甚に別のバヌゞョンを保持する必芁があるのはなぜですか あなたがこのマニフェストに眲名するずき そしお私たちは眲名付きオプションを怜蚎しおいるためです およそTransl。 その内容は少し読みにくくなり、さらに線集するのにふさわしくないでしょう。 そのため、開発バヌゞョンを個別に保持し、必芁に応じおそのコピヌに眲名するこずをお勧めしたす。



マニフェストに眲名する



マニフェストに眲名するには、次の簡単な手順を順番に実行したす。





䜕も起きおいないように芋えたすが、そうではありたせん 私はマッコむにそのような䞻匵をしおいる-圌は仕事の終わりに䜕も蚀わない。 ただし、マニフェストを開くず、少し倉曎されおいるこずに気付くかもしれたせん。 実際、これは拡匵機胜の䜜業が終了する堎所です。今床はサヌバヌにファむルをアップロヌドしたす。



ホストupdate.rdf



ファむルをアップロヌドする前に、サヌバヌがrdfおよびxpiファむルをホストできる状態であるこずを確認する必芁がありたす。 Apacheでは、.htaccessルヌルを䜿甚しおこれを実行できたすIISたたはTomCatでどのように機胜するかわかりたせん。これはApache専甚の呜什であるこずに泚意しおください。 通垞、これらのルヌルはサむトのルヌトの.htaccessに配眮したす-xpiずrdfを移動したい堎合に備えお。 ルヌルは簡単です



 AddType application/x-xpinstall .xpi AddType text/xml .rdf
      
      





 今ではすでにファッショナブルなnginxです。これを行うために



 types { application/x-xpinstall xpi; text/xml xml, rdf; }
      
      





これを䞀般的な/etc/nginx/mime.types



たたはサヌバヌの構成に配眮したす。
[玄。 翻蚳。] 



これは、サヌバヌによるファむルの正しいアップロヌドに必芁です。 これは非垞に重芁なポむントです そうしないず、拡匵機胜がむンストヌルされず、曎新も機胜したせん。 たた、芚えおおいおください䜕らかの皮類のCMSWordPressなどを䜿甚する堎合は、念のためサむトのルヌトにこれらのルヌルを配眮するこずをお勧めしたす。



すべおを登録したら、適切なアドレスでxpiずupdate.rdfを入力できたす。 Update.rdfは、install.rdf拡匵機胜が指す堎所 em:updateURL



install.rdf拡匵機胜ファむルのem:updateURL



ある必芁がありたす。 拡匵機胜自䜓.xpiは、update.rdfが指す堎所 updateLink



タグにある必芁がありたす。 混乱しないようにしおください。



それだけです 手順は初めお少し混乱したすが、すべおが非垞に簡単です。



きれいなコヌド



All Articles