We are currently checking if the plugin module and the plugin process mix GTK symbols after the plugin has been loaded and initialized. This is too late in many cases, since plugins can use GTK methods in the NP_Initialize implementation. This is causing the apps using WebKitGTK+ 2.4 to freeze when the plugin process scans the plugins and there's a plugin using GTK+3. See: $ Programs/WebKitPluginProcess -scanPlugin /usr/lib/mozilla/plugins/libevbrowserplugin.so (WebKitPluginProcess:15409): GLib-GObject-WARNING **: cannot register existing type 'GtkSettings' (WebKitPluginProcess:15409): GLib-GObject-WARNING **: cannot add private field to invalid (non-instantiatable) type '<invalid>' (WebKitPluginProcess:15409): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed (WebKitPluginProcess:15409): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed (WebKitPluginProcess:15409): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed And the plugin process hangs here, and since the UI process calls WebKitPluginProcess -scanPlugin synchronously it freezes forever. We should move the check earlier, once the module is loaded but before calling NP_Initialize.
Created attachment 237071 [details] Patch
Comment on attachment 237071 [details] Patch Good catch Carlos!
Committed r172919: <http://trac.webkit.org/changeset/172919>