summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/plugins/gtk/PluginPackageGtk.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-06-02 12:07:03 +0100
committerBen Murdoch <benm@google.com>2011-06-10 10:47:21 +0100
commit2daae5fd11344eaa88a0d92b0f6d65f8d2255c00 (patch)
treee4964fbd1cb70599f7718ff03e50ea1dab33890b /Source/WebCore/plugins/gtk/PluginPackageGtk.cpp
parent87bdf0060a247bfbe668342b87e0874182e0ffa9 (diff)
downloadexternal_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.zip
external_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.tar.gz
external_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.tar.bz2
Merge WebKit at r84325: Initial merge by git.
Change-Id: Ic1a909300ecc0a13ddc6b4e784371d2ac6e3d59b
Diffstat (limited to 'Source/WebCore/plugins/gtk/PluginPackageGtk.cpp')
-rw-r--r--Source/WebCore/plugins/gtk/PluginPackageGtk.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/WebCore/plugins/gtk/PluginPackageGtk.cpp b/Source/WebCore/plugins/gtk/PluginPackageGtk.cpp
index 21d3c9e..ab8eb57 100644
--- a/Source/WebCore/plugins/gtk/PluginPackageGtk.cpp
+++ b/Source/WebCore/plugins/gtk/PluginPackageGtk.cpp
@@ -119,6 +119,17 @@ static int webkitgtkXError(Display* xdisplay, XErrorEvent* error)
}
#endif
+static bool moduleMixesGtkSymbols(GModule* module)
+{
+ gpointer symbol;
+#ifdef GTK_API_VERSION_2
+ return g_module_symbol(module, "gtk_application_get_type", &symbol);
+#else
+ return g_module_symbol(module, "gtk_object_get_type", &symbol);
+#endif
+}
+
+
bool PluginPackage::load()
{
if (m_isLoaded) {
@@ -150,6 +161,12 @@ bool PluginPackage::load()
return false;
}
+ if (moduleMixesGtkSymbols(m_module)) {
+ LOG(Plugins, "Module '%s' mixes GTK+ 2 and GTK+ 3 symbols, ignoring plugin.\n", m_path.utf8().data());
+ g_module_close(m_module);
+ return false;
+ }
+
m_isLoaded = true;
#if defined(XP_UNIX)