Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(212)

Side by Side Diff: content/browser/browser_main.cc

Issue 8195003: Initialize glib for all linux variants (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/browser_main.h" 5 #include "content/browser/browser_main.h"
6 6
7 #include "base/allocator/allocator_shim.h" 7 #include "base/allocator/allocator_shim.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 20 matching lines...) Expand all
31 #include <commctrl.h> 31 #include <commctrl.h>
32 #include <ole2.h> 32 #include <ole2.h>
33 #include <shellapi.h> 33 #include <shellapi.h>
34 34
35 #include "base/win/scoped_com_initializer.h" 35 #include "base/win/scoped_com_initializer.h"
36 #include "net/base/winsock_init.h" 36 #include "net/base/winsock_init.h"
37 #include "sandbox/src/sandbox.h" 37 #include "sandbox/src/sandbox.h"
38 #include "ui/base/l10n/l10n_util_win.h" 38 #include "ui/base/l10n/l10n_util_win.h"
39 #endif 39 #endif
40 40
41 #if defined(OS_LINUX)
42 #include <glib-object.h>
43 #endif
44
41 #if defined(OS_CHROMEOS) 45 #if defined(OS_CHROMEOS)
42 #include <dbus/dbus-glib.h> 46 #include <dbus/dbus-glib.h>
43 #endif 47 #endif
44 48
45 #if defined(OS_POSIX) && !defined(OS_MACOSX) 49 #if defined(OS_POSIX) && !defined(OS_MACOSX)
46 #include <sys/stat.h> 50 #include <sys/stat.h>
47 51
48 #include "content/browser/renderer_host/render_sandbox_host_linux.h" 52 #include "content/browser/renderer_host/render_sandbox_host_linux.h"
49 #include "content/browser/zygote_host_linux.h" 53 #include "content/browser/zygote_host_linux.h"
50 #endif 54 #endif
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 sandbox_cmd = sandbox_binary; 101 sandbox_cmd = sandbox_binary;
98 102
99 // Tickle the sandbox host and zygote host so they fork now. 103 // Tickle the sandbox host and zygote host so they fork now.
100 RenderSandboxHostLinux* shost = RenderSandboxHostLinux::GetInstance(); 104 RenderSandboxHostLinux* shost = RenderSandboxHostLinux::GetInstance();
101 shost->Init(sandbox_cmd); 105 shost->Init(sandbox_cmd);
102 ZygoteHost* zhost = ZygoteHost::GetInstance(); 106 ZygoteHost* zhost = ZygoteHost::GetInstance();
103 zhost->Init(sandbox_cmd); 107 zhost->Init(sandbox_cmd);
104 } 108 }
105 #endif 109 #endif
106 110
107 #if defined(TOOLKIT_USES_GTK) 111 #if defined(OS_LINUX)
108 static void GLibLogHandler(const gchar* log_domain, 112 static void GLibLogHandler(const gchar* log_domain,
109 GLogLevelFlags log_level, 113 GLogLevelFlags log_level,
110 const gchar* message, 114 const gchar* message,
111 gpointer userdata) { 115 gpointer userdata) {
112 if (!log_domain) 116 if (!log_domain)
113 log_domain = "<unknown>"; 117 log_domain = "<unknown>";
114 if (!message) 118 if (!message)
115 message = "<no message>"; 119 message = "<no message>";
116 120
117 if (strstr(message, "Loading IM context type") || 121 if (strstr(message, "Loading IM context type") ||
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 // Register the main thread by instantiating it, but don't call any methods. 273 // Register the main thread by instantiating it, but don't call any methods.
270 main_thread_.reset(new BrowserThread(BrowserThread::UI, 274 main_thread_.reset(new BrowserThread(BrowserThread::UI,
271 MessageLoop::current())); 275 MessageLoop::current()));
272 } 276 }
273 277
274 void BrowserMainParts::InitializeToolkit() { 278 void BrowserMainParts::InitializeToolkit() {
275 // TODO(evan): this function is rather subtle, due to the variety 279 // TODO(evan): this function is rather subtle, due to the variety
276 // of intersecting ifdefs we have. To keep it easy to follow, there 280 // of intersecting ifdefs we have. To keep it easy to follow, there
277 // are no #else branches on any #ifs. 281 // are no #else branches on any #ifs.
278 282
279 #if defined(TOOLKIT_USES_GTK) 283 #if defined(OS_LINUX)
280 // We want to call g_thread_init(), but in some codepaths (tests) it 284 // We want to call g_thread_init(), but in some codepaths (tests) it
281 // is possible it has already been called. In older versions of 285 // is possible it has already been called. In older versions of
282 // GTK, it is an error to call g_thread_init twice; unfortunately, 286 // GTK, it is an error to call g_thread_init twice; unfortunately,
283 // the API to tell whether it has been called already was also only 287 // the API to tell whether it has been called already was also only
284 // added in a newer version of GTK! Thankfully, this non-intuitive 288 // added in a newer version of GTK! Thankfully, this non-intuitive
285 // check is actually equivalent and sufficient to work around the 289 // check is actually equivalent and sufficient to work around the
286 // error. 290 // error.
287 if (!g_thread_supported()) 291 if (!g_thread_supported())
288 g_thread_init(NULL); 292 g_thread_init(NULL);
289 // Glib type system initialization. Needed at least for gconf, 293 // Glib type system initialization. Needed at least for gconf,
290 // used in net/proxy/proxy_config_service_linux.cc. Most likely 294 // used in net/proxy/proxy_config_service_linux.cc. Most likely
291 // this is superfluous as gtk_init() ought to do this. It's 295 // this is superfluous as gtk_init() ought to do this. It's
292 // definitely harmless, so retained as a reminder of this 296 // definitely harmless, so retained as a reminder of this
293 // requirement for gconf. 297 // requirement for gconf.
294 g_type_init(); 298 g_type_init();
295 #if defined(OS_CHROMEOS) 299 #if defined(OS_CHROMEOS)
296 // ChromeOS still uses dbus-glib, so initialize its threading here. 300 // ChromeOS still uses dbus-glib, so initialize its threading here.
297 // TODO(satorux, stevenjb): remove this once it is no longer needed. 301 // TODO(satorux, stevenjb): remove this once it is no longer needed.
298 dbus_g_thread_init(); 302 dbus_g_thread_init();
299 #endif 303 #endif
300 #if defined(USE_AURA) 304 #if !defined(USE_AURA)
301 // TODO(oshima|saintlou): Remove this once we remove gtk from build
302 base::MessagePumpX::DisableGtkMessagePump();
303 #else
304 gfx::GtkInitFromCommandLine(parameters().command_line_); 305 gfx::GtkInitFromCommandLine(parameters().command_line_);
305 #endif 306 #endif
306 SetUpGLibLogHandler(); 307 SetUpGLibLogHandler();
307 #endif 308 #endif
308 309
309 #if defined(TOOLKIT_GTK) 310 #if defined(TOOLKIT_GTK)
310 // It is important for this to happen before the first run dialog, as it 311 // It is important for this to happen before the first run dialog, as it
311 // styles the dialog as well. 312 // styles the dialog as well.
312 gfx::InitRCStyles(); 313 gfx::InitRCStyles();
313 #endif 314 #endif
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 base::win::ScopedCOMInitializer com_initializer; 420 base::win::ScopedCOMInitializer com_initializer;
420 #endif // OS_WIN 421 #endif // OS_WIN
421 422
422 base::StatisticsRecorder statistics; 423 base::StatisticsRecorder statistics;
423 424
424 parts->RunMainMessageLoopParts(); 425 parts->RunMainMessageLoopParts();
425 426
426 TRACE_EVENT_END_ETW("BrowserMain", 0, 0); 427 TRACE_EVENT_END_ETW("BrowserMain", 0, 0);
427 return parts->result_code(); 428 return parts->result_code();
428 } 429 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698