Bug 345541 - "plugins linked to libxul.so do not load". Patch by Steve Krulewitz <skrulx@gmail.com>. r+sr=jst.

This commit is contained in:
bent.mozilla%gmail.com 2006-08-28 23:43:22 +00:00
parent 01e8bc30e3
commit 7a43ba0d19

View File

@ -451,9 +451,19 @@ nsresult nsPluginFile::GetPluginInfo(nsPluginInfo& info)
nsCOMPtr<nsIFactory> factory;
rv = nsGetFactory(mgr, kPluginCID, nsnull, nsnull,
getter_AddRefs(factory));
if (NS_FAILED(rv)) return rv;
plugin = do_QueryInterface(factory);
if (NS_FAILED(rv)) {
// HACK: The symbol lookup for "NSGetFactory" mistakenly returns
// a reference to an unrelated function when we have an NPAPI
// plugin linked to libxul.so. Give this plugin another shot as
// an NPAPI plugin
rv = ns4xPlugin::CreatePlugin(mgr, 0, 0, pLibrary,
getter_AddRefs(plugin));
if (NS_FAILED(rv))
return rv;
} else {
plugin = do_QueryInterface(factory);
}
} else {
// It's old sk00l
// if fileName parameter == 0 ns4xPlugin::CreatePlugin() will not call NP_Initialize()