I am following the tutorial at http://www.borngeek.com/firefox/automatic-firefox-extension-updates/ to make my FF extension can be updated automatically to users, but I stuck at the last part "Hosting an Update Manifest" as I am using Tomcat serve and I have no ideas how to set up the .htaccess (Is the .htaccess file similar with WEB-INF directory in terms of configure server?)
What I have done so far,
Create a key pair: Public-Key and Private-Key
Calculate sha256: b3290c69a1...
Create 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:[email protected]"> <updates> <r:Seq> <r:li> <r:Description> <version>1.0.1</version> <targetApplication> <r:Description> <id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</id> <minVersion>3.5</minVersion> <maxVersion>5.0.*</maxVersion> <updateLink>http://localhost:8080/myextension/pluginupdate/myextension.xpi</updateLink> <updateHash> sha256:b3290c69a1... </updateHash> </r:Description> </targetApplication> </r:Description> </r:li> </r:Seq> </updates> </r:Description> </r:RDF>
Sign update.rdf using Key
Place singed update.rdf and myextension.xpi under pluginupdate directory, where pluginupdate is on the same level with WEB-INF.
My 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>[email protected]</em:id> <em:name>My Test extension</em:name> <em:version>1.0</em:version> <em:description>Test Mozilla Extension.</em:description> <em:creator>TEST Group</em:creator> <!-- optional items --> <em:contributor>Me</em:contributor> <em:homepageURL>http://?????????/</em:homepageURL> <em:updateKey> MIGfMA0G..... </em:updateKey> <em:updateURL>http://localhost:8080/myextension/pluginupdate/update.rdf</em:updateURL> <!-- Firefox --> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>3.5</em:minVersion> <em:maxVersion>5.0.*</em:maxVersion> </Description> </em:targetApplication> </Description> </RDF>
When i restart FF Browser, nothing happens. When I start FF Browser using command line with option -console
*** LOG addons.xpi: startup *** LOG addons.xpi: checkForChanges *** LOG addons.xpi: No changes found *** LOG addons.xpi: Opening database
So, how can I host and configure Tomcat to host the update manifest? Thanks
Update
Hi Wladimir,
After define in the MIME type in the web.xml, there are some more information given with the -console option.
I removed the extension and re-installed it, the logs are
*** LOG addons.xpi: startup *** LOG addons.xpi: checkForChanges *** LOG addons.xpi: No changes found *** LOG addons.xpi: Opening database *** LOG addons.repository: Requesting https://services.addons.mozilla.org/en-GB/firefox/api/1.5/search/guid:myextension%40mozilla.myextension.org?src=firefox&appOS=Linux&appVersion=5.0&tMain=23&tFirstPaint=1641&tSessionRestored=1042 *** LOG addons.xpi: Starting install of file:///home/me/browserplugindev/firefox/test/myextension.xpi *** LOG addons.xpi: Addon [email protected] will be installed as a packed xpi *** LOG addons.xpi: Install of file:///home/me/browserplugindev/firefox/test/myextension.xpi completed. NOTE: child process received `Goodbye', closing down *** LOG addons.xpi: shutdown *** LOG addons.xpi: startup *** LOG addons.xpi: checkForChanges *** LOG addons.xpi: Found updated manifest for [email protected] in app-profile *** LOG addons.xpi: Processing install of [email protected] in app-profile *** LOG addons.xpi: Opening database *** LOG addons.xpi: New add-on [email protected] installed in app-profile *** LOG addons.xpi: Updating database with changes to installed add-ons *** LOG addons.xpi: Updating add-on states *** LOG addons.xpi: Writing add-ons list
Frome line
LOG addons.repository: Requesting https://services.addons.mozilla.org/en-GB/firefox/api/1.5/search/guid:myextension%40mozilla.myextension.org?src=firefox&appOS=Linux&appVersion=5.0&tMain=23&tFirstPaint=1641&tSessionRestored=1042
we can see that Update Manager (?) is making request to repository at https://services.addons.mozilla.org/en-GB/firefox/api/1.5/search/guid:myextension%40mozilla.myextension.org?src=firefox&appOS=Linux&appVersion=5.0&tMain=23&tFirstPaint=1641&tSessionRestored=1042
Also, after the startup
*** LOG addons.xpi: Found updated manifest for [email protected] in app-profile *** LOG addons.xpi: Processing install of [email protected] in app-profile
So does it mean that the update is found. But I did not see the notification on the Browser that tell me something like "there is a new version of myextension, update?".
Did i miss anything?