Index: chrome/app/chrome_dll_main.cc |
=================================================================== |
--- chrome/app/chrome_dll_main.cc (revision 13925) |
+++ chrome/app/chrome_dll_main.cc (working copy) |
@@ -20,8 +20,10 @@ |
#endif |
#if defined(OS_LINUX) |
+#include <gdk/gdk.h> |
+#include <glib.h> |
+#include <gtk/gtk.h> |
#include <string.h> |
-#include <gtk/gtk.h> |
#endif |
#include "base/at_exit.h" |
@@ -423,6 +425,15 @@ |
#endif |
} else if (process_type.empty()) { |
#if defined(OS_LINUX) |
+ // Glib/GDK type system and threading initializations. Needed at |
+ // least for gconf usage in net/proxy/proxy_config_service_linux.cc. |
+ // TODO(sdoyon): confirm whether gconf truly needs this. If so, |
+ // the GTK main loop (message pump) must also be made to call |
+ // gdk_threads_enter/leave(). Similar issue with the clipboard |
+ // (estade@ deanm@). |
+ g_type_init(); |
+ g_thread_init(NULL); |
+ gdk_threads_init(); |
// gtk_init() can change |argc| and |argv|, but nobody else uses them. |
gtk_init(&argc, const_cast<char***>(&argv)); |
SetUpGLibLogHandler(); |