Today I did learn something about firefox plugins. We had some problems with a plugin provided by a 3rd party vendor that we integrated in our site.
The plugin did not install properly in firefox instance of version 4 or later. The respective extension got listed in the extension manager but the plugin itself did not show up in the list of installed plugins. This meant the plugin was not available and our site still asked for it to be installed. In firefox 3.6 everything was okay.
After a lot of research and some peeking around I finally found the solution. From firefox 4 onwards an extension has to declare if it needs to be unpacked by firefox to work or not. In versions older than 4 every extension was unpacked but in newer versions unpacking requires the presence of the unpack tag in the install.rdf packaged with every xpi file.
As described at the mozilla documentation the install.rdf needs to contain this entry:<em:unpack>true</em:unpack>
When I unzipped the xpi file in question and extracted the contained install.rdf I saw that it did contain the unpack tag but with a subtle differece: <em:unpack>True</em:unpack>
As you see the only difference is the uppercase "T". It was a long shot but since I had nothing to lose I changed the entry to "true" and repackaged the xpi. After putting up this new version to our website the plugin installed perfectly in every firefox version!!
Two things here really threw me off, first how our vendor could ship this version as this file cannot have every worked for firefox 4 for which it was explicitly built (but I will get back at them about this ;-)). And secondly why firefox does not recognize the entry just because of the case.
Anyways I had a hard time figuring this one out today so maybe this can be of use to someone :-)