diff options
author | sudarsana.nagineni@intel.com <sudarsana.nagineni@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-10 19:38:43 +0000 |
---|---|---|
committer | sudarsana.nagineni@intel.com <sudarsana.nagineni@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-10 19:38:43 +0000 |
commit | 89031cdb70ff4d3ec0d570da46595648db64e96b (patch) | |
tree | 6743b6594efb3b79f8259148efa6823688475bbb /chrome/service | |
parent | 0dbe2cda4201f7db51036f261acb19a6b87ecf64 (diff) | |
download | chromium_src-89031cdb70ff4d3ec0d570da46595648db64e96b.zip chromium_src-89031cdb70ff4d3ec0d570da46595648db64e96b.tar.gz chromium_src-89031cdb70ff4d3ec0d570da46595648db64e96b.tar.bz2 |
Fix service process crash on opening chrome://settings in desktop aura builds.
GLib type system is needed for gconf, so initialize it in the service process
to avoid a crash.
BUG=287718,282644
Review URL: https://chromiumcodereview.appspot.com/23721007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222319 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/service')
-rw-r--r-- | chrome/service/service_process.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/chrome/service/service_process.cc b/chrome/service/service_process.cc index 5e7acb1..0243531 100644 --- a/chrome/service/service_process.cc +++ b/chrome/service/service_process.cc @@ -35,6 +35,10 @@ #include "ui/base/resource/resource_bundle.h" #include "ui/base/ui_base_switches.h" +#if defined(OS_LINUX) || defined(OS_OPENBSD) +#include <glib-object.h> +#endif + #if defined(TOOLKIT_GTK) #include <gtk/gtk.h> #include "ui/gfx/gtk_util.h" @@ -139,7 +143,13 @@ bool ServiceProcess::Initialize(base::MessageLoopForUI* message_loop, char **argv_pointer = argv.get(); gtk_init_check(&argc, &argv_pointer); free(argv[0]); +#elif defined(OS_LINUX) || defined(OS_OPENBSD) + // g_type_init has been deprecated since version 2.35. +#if !GLIB_CHECK_VERSION(2, 35, 0) + // GLib type system initialization is needed for gconf. + g_type_init(); #endif +#endif // defined(OS_LINUX) || defined(OS_OPENBSD) main_message_loop_ = message_loop; service_process_state_.reset(state); network_change_notifier_.reset(net::NetworkChangeNotifier::Create()); |