Bug 136214 - [GTK] Should check if a plugin mixes GTK+ symbols earlier
Summary: [GTK] Should check if a plugin mixes GTK+ symbols earlier
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
Keywords: Gtk
Depends on:
Reported: 2014-08-25 03:10 PDT by Carlos Garcia Campos
Modified: 2014-08-25 05:45 PDT (History)
3 users (show)

See Also:

Patch (3.42 KB, patch)
2014-08-25 03:13 PDT, Carlos Garcia Campos
pnormand: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos Garcia Campos 2014-08-25 03:10:24 PDT
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.
Comment 1 Carlos Garcia Campos 2014-08-25 03:13:10 PDT
Created attachment 237071 [details]
Comment 2 Philippe Normand 2014-08-25 03:22:49 PDT
Comment on attachment 237071 [details]

Good catch Carlos!
Comment 3 Carlos Garcia Campos 2014-08-25 05:45:29 PDT
Committed r172919: <http://trac.webkit.org/changeset/172919>