Index: content/utility/utility_thread_impl.cc |
diff --git a/content/utility/utility_thread_impl.cc b/content/utility/utility_thread_impl.cc |
index e909224df8652a440cc1bf2e16fd7db3d492c392..f4c4b35c9b25ec414b388fe97a3e4c837054bbfb 100644 |
--- a/content/utility/utility_thread_impl.cc |
+++ b/content/utility/utility_thread_impl.cc |
@@ -6,6 +6,7 @@ |
#include <stddef.h> |
+#include "base/command_line.h" |
#include "base/file_path.h" |
#include "base/memory/scoped_vector.h" |
#include "content/common/child_process.h" |
@@ -20,6 +21,12 @@ |
#include "webkit/glue/idb_bindings.h" |
#include "webkit/plugins/npapi/plugin_list.h" |
+#if defined(TOOLKIT_USES_GTK) |
+#include <gtk/gtk.h> |
+ |
+#include "ui/gfx/gtk_util.h" |
+#endif |
+ |
namespace { |
template<typename SRC, typename DEST> |
@@ -37,6 +44,13 @@ UtilityThreadImpl::UtilityThreadImpl() |
webkit_platform_support_.reset(new content::WebKitPlatformSupportImpl); |
WebKit::initialize(webkit_platform_support_.get()); |
content::GetContentClient()->utility()->UtilityThreadStarted(); |
+ |
+ // On Linux, some plugins expect the browser to have loaded glib/gtk. Do that |
+ // before attempting to call into the plugin. |
+#if defined(TOOLKIT_USES_GTK) |
+ g_thread_init(NULL); |
+ gfx::GtkInitFromCommandLine(*CommandLine::ForCurrentProcess()); |
+#endif |
} |
UtilityThreadImpl::~UtilityThreadImpl() { |