ãã®èšäºã¯å€ãã§ããããã¹ãŠã®æ å ±ã¯ãã®æ¥ã«é¢é£ããŠããŸãã
ãã¡ãããFirefoxæ¡åŒµæ©èœã®éçºè ã¯ã å ¬åŒã¹ãã¢ãéããŠæ¡åŒµæ©èœãé åžããå Žåãæ¡åŒµæ©èœãç¡æã§èªåçã«æŽæ°ã§ããããšãç¥ã£ãŠããŸãã ããããæ¡åŒµæ©èœãèªåã®ãµã€ãã§ãã¹ããããå Žåã¯ã©ãã§ããããïŒ èªåæŽæ°ã®ãµããŒããã©ã®ããã«å®è£ ããŸããïŒ
æ¡åŒµæ©èœã«çœ²åãã
Firefoxã®3çªç®ã®ããŒãžã§ã³ä»¥éããã¹ãŠã®æ¡åŒµæ©èœã®æŽæ°ã¯ä¿¡é Œã§ãããã£ãã«ãéããŠæäŸãããå¿ èŠããããŸãã æ¡åŒµæ©èœãç¬èªã«ãã¹ãããããšã«æ±ºããããããã®èŠä»¶ãæºããããã®2ã€ã®ãªãã·ã§ã³ããããŸãã
- ã»ãã¥ã¢ïŒhttpsïŒæ¥ç¶ãä»ããŠæŽæ°ãæäŸãã
- æ¡åŒµæ©èœã«é»å眲åãã
æåã®ãªãã·ã§ã³ã¯èæ ®ããŸãã-ã»ãšãã©ã®å Žåãããã«ã¯è¿œå è²»çšãå¿ èŠã§ãïŒSSL蚌ææžãè³Œå ¥ããéçIPãææããå¿ èŠããããŸãïŒç§ã¯ãããäœã§ãããç解ã§ããŸããã§ããããæ²ããåèªãæ¶å»ããŸãã[ãããŸãã§ããTranslã ïŒïŒïŒç¡æã§äœ¿ãããããå®è£ ãé«éã§ãã ããŠãããã䜿çšããæ¹æ³ãåŠã³ãŸãããïŒ
ç§å¯/å ¬éããŒã®ãã¢ãäœæãã
æ¡åŒµæ©èœã«çœ²åããæåã®ã¹ãããã¯ãç§å¯/å ¬éããŒã®ãã¢ãäœæããããšã§ãã Mozillaã¯ããã®ç®çã®ããã«McCoyãŠãŒãã£ãªãã£ãæäŸããŠããŸãã äžçã§æãç°¡åãªãŠãŒãã£ãªãã£ã§ã¯ãªãããã以äžã«ãã®èª¿çæ¹æ³ã瀺ããŸãã
- McCoy Webãµã€ãã«ã¢ã¯ã»ã¹ããŠãé©åãªããã±ãŒãžãããŠã³ããŒãããŸãïŒWindowsãLinuxãããã³Mac OS Xã®ããŒãžã§ã³ããããŸãïŒ
- 䟿å©ãªãã£ã¬ã¯ããªã«ããã±ãŒãžãå±éããŸã
- ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŸãã æåã®èµ·åæã«ãããŒãä¿è·ããããã®ãã¹ã¿ãŒãã¹ã¯ãŒãã®äœæãææ¡ãããŸãã ãã®ãããªãã¹ã¯ãŒããäœæããããšã匷ããå§ãããŸãïŒ McCoyã¯ãåèµ·åãããã³ã«ããã®ãã¹ã¯ãŒããèŠæ±ããŸãã
- ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããŠããå Žåã¯ãã¡ãã¥ãŒã®[ããŒ]»[æ°ããããŒã®äœæ]ãéžæããŸãã ããŒã®æ£ããååãå ¥åãã[OK]ãã¯ãªãã¯ããŸãã ãµã€ãã§è€æ°ã®æ¡åŒµæ©èœããã¹ãããå Žåã§ãã1ã€ã®ããŒã§ååã§ãã
ããŠãããŒãäœæãããŸããã次ã«ãæ¡åŒµãããã§ã¹ããæŽæ°ããå¿ èŠããããŸãã
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ãšããååãä»ããŸãã 眲åããã®ã¯ãã®ãã¡ã€ã«ã§ã
- McCoyããŸã å®è¡ãããŠããªãå Žåã¯èµ·åããŸã
- 眲åããããŒãéžæãã[æŽæ°]ã¡ãã¥ãŒã§[æŽæ°ãããã§ã¹ãã«çœ²å]ãéžæããŸã
- éããã¡ãã¥ãŒã§ãäœæããupdate.rdfãéžæãã[éã]ãã¯ãªãã¯ããŸã
äœãèµ·ããŠããªãããã«èŠããŸãããããã§ã¯ãããŸããïŒ ç§ã¯ããã³ã€ã«ãã®ãããªäž»åŒµãããŠãã-圌ã¯ä»äºã®çµããã«äœãèšããªãã ãã ãããããã§ã¹ããéããšãå°ãå€æŽãããŠããããšã«æ°ä»ããããããŸããã å®éãããã¯æ¡åŒµæ©èœã®äœæ¥ãçµäºããå Žæã§ããä»åºŠã¯ãµãŒããŒã«ãã¡ã€ã«ãã¢ããããŒãããŸãã
ãã¹ã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
ã¿ã°ïŒã«ããå¿ èŠããããŸãã æ··ä¹±ããªãããã«ããŠãã ããã
ããã ãã§ãïŒ æé ã¯åããŠå°ãæ··ä¹±ããŸããããã¹ãŠãéåžžã«ç°¡åã§ãã
ããããªã³ãŒãïŒ