Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6067039
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T09:33:55+00:00 2026-05-23T09:33:55+00:00

I am following the tutorial at http://www.borngeek.com/firefox/automatic-firefox-extension-updates/ to make my FF extension can be

  • 0

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:myextension@mozilla.myextension.org">
    <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>myextension@mozilla.myextension.org</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 myextension@mozilla.myextension.org 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 myextension@mozilla.myextension.org in app-profile
*** LOG addons.xpi: Processing install of myextension@mozilla.myextension.org in app-profile
*** LOG addons.xpi: Opening database
*** LOG addons.xpi: New add-on myextension@mozilla.myextension.org 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 myextension@mozilla.myextension.org in app-profile
*** LOG addons.xpi: Processing install of myextension@mozilla.myextension.org 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?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T09:33:55+00:00Added an answer on May 23, 2026 at 9:33 am

    The point of the .htaccess file is simply ensuring that the server knows the MIME types. It seems that you can do that for Tomcat by changing conf/web.xml file:

    <mime-mapping>
      <extension>xpi</extension>
      <mime-type>application/x-xpinstall</mime-type>
    </mime-mapping>
    <mime-mapping>
      <extension>rdf</extension>
      <mime-type>application/rdf+xml</mime-type>
    </mime-mapping>
    

    I looked through your update.rdf and install.rdf files and I don’t see any obvious issues – it should work. You might want to go to about:config and switch on extensions.logging.enabled preference however, this will make sure that additional information is sent to the Error Console (press Ctrl-Shift-J to open or use -jsconsole on the command line).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've tried following this tutorial (http://www.raywenderlich.com/4666/how-to-create-a-hud-layer-with-cocos2d) however as you can probably tell I'm not
I am following the following tutorial ( http://www.highoncoding.com/Articles/642_Creating_a_Stock_Widget_in_ASP_NET_MVC_Application.aspx ) on using ajax to render
I am following the tutorial: http://www.tutorialspoint.com/ruby/ruby_socket_programming.htm and using it to set up the Simple
I was following this tutorial: http://www.vogella.com/articles/AndroidLocationAPI/article.html --> Paragraph 6.0 Problem: My emulator runs perfectly
I'm following this tutorial http://www.vogella.com/articles/AndroidIntent/article.html for having some data transfered to parent activity by
I am following Html5rocks tutorial http://www.html5rocks.com/en/tutorials/file/dndfiles/ and I am trying to use readAsArrayBuffer instead
I am following this tutorial http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ note: yes I know I did install hadoop
I have created a listview using following tutorial link http://www.ezzylearning.com/tutorial.aspx?tid=1763429 Outcome of this is,
i have made a simple php contact form following this tutorial: http://www.catswhocode.com/blog/how-to-create-a-built-in-contact-form-for-your-wordpress-theme The big
Trying the following tutorial http://www.androidsdkforum.com/android-sdk-development/3-oauth-twitter.html i am having trouble understanding callback URL my twitter

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.