I've been scratching my head over this for the last few days and neither me nor Google have come up with a good solution.
I have a native NPAPI plugin that works fine for Firefox 3.6. It simply consists of a single np*.dll, nothing else.
Now I'm upgrading it to Firefox 4 Beta. I've changed the install.rdf to include the new em:unpack directive (XPIs were automatically unpacked in Pre-4) and even added a new chrome.manifest with the (supposedly) now required 'binary-component' statement (according to https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0: 'Prior to Gecko 2, during component registration, all binary and JavaScript component files were loaded and called, asking them to register themselves').
The problem is: The plugin downloads and supposedly installs. But then while it shows up in the AddOn manager it doesn't show up in 'about:plugins' and is of course not usable either. I ran Firefox with extension logging enabled but nothing really useful regarding the plugin showed up there either..
Basically I'm stumped - any help please?
Phew - turns out I found the cause of the problem: the np*.dll was in the root folder inside the XPI, not in the plugins/ folder as it's supposed to be. FF3.6 was more forgiving it seems, FF4 only loads a NPAPI DLL if the DLL is actually inside the plugins folder...
Problem solved :-)