NetscapePluginModule::getPluginInfo() crashes when called from determineQuirks(). The problem is that determineQuirks() is called when loading a plugin module. Since getPluginInfo() is a static method, when called from determineQuirks() it tries to get or load the plugin module again, the module is now loaded but determineQuirks is called again recursively. A solution to this problem could be adding a private method to get the plugin info for a module already loaded that can be called from determineQuirks.
Created attachment 109265 [details] Patch
Comment on attachment 109265 [details] Patch Instead of adding getPluginInfo along with pluginInfo, I think it would be safer to ensure that getPluginInfo is safe to call at any time. I say this because it seems to work on Windows and Mac. If the other ports are making that assumption we should try to match it.
Other ports don't need to call NetscapePluginModule::getOrCreate() in getPluginInfo(), they use the plugin path directly. We need load the module to get the information.
Comment on attachment 109265 [details] Patch Hrm. I took another look and I think your method is cleaner than adapting getPluginInfo to allow recursive calls. I think the danger of that happening is pretty low.
Committed r96400: <http://trac.webkit.org/changeset/96400>