| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 // TODO(port): the ifdefs in here are a first step towards trying to determine | 5 // TODO(port): the ifdefs in here are a first step towards trying to determine |
| 6 // the correct abstraction for all the OS functionality required at this | 6 // the correct abstraction for all the OS functionality required at this |
| 7 // stage of process initialization. It should not be taken as a final | 7 // stage of process initialization. It should not be taken as a final |
| 8 // abstraction. | 8 // abstraction. |
| 9 | 9 |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 433 NOTIMPLEMENTED(); | 433 NOTIMPLEMENTED(); |
| 434 #endif | 434 #endif |
| 435 } else if (process_type == switches::kWorkerProcess) { | 435 } else if (process_type == switches::kWorkerProcess) { |
| 436 #if defined(OS_WIN) | 436 #if defined(OS_WIN) |
| 437 rv = WorkerMain(main_params); | 437 rv = WorkerMain(main_params); |
| 438 #else | 438 #else |
| 439 NOTIMPLEMENTED(); | 439 NOTIMPLEMENTED(); |
| 440 #endif | 440 #endif |
| 441 } else if (process_type.empty()) { | 441 } else if (process_type.empty()) { |
| 442 #if defined(OS_LINUX) | 442 #if defined(OS_LINUX) |
| 443 // Glib/GDK type system and threading initializations. Needed at | 443 // Glib type system initialization. Needed at least for gconf (in |
| 444 // least for gconf usage in net/proxy/proxy_config_service_linux.cc. | 444 // net/proxy/proxy_config_service_linux.cc). |
| 445 // TODO(sdoyon): confirm whether gconf truly needs this. If so, | |
| 446 // the GTK main loop (message pump) must also be made to call | |
| 447 // gdk_threads_enter/leave(). Similar issue with the clipboard | |
| 448 // (estade@ deanm@). | |
| 449 g_type_init(); | 445 g_type_init(); |
| 450 g_thread_init(NULL); | |
| 451 gdk_threads_init(); | |
| 452 // gtk_init() can change |argc| and |argv|, but nobody else uses them. | 446 // gtk_init() can change |argc| and |argv|, but nobody else uses them. |
| 453 gtk_init(&argc, const_cast<char***>(&argv)); | 447 gtk_init(&argc, const_cast<char***>(&argv)); |
| 454 SetUpGLibLogHandler(); | 448 SetUpGLibLogHandler(); |
| 455 #endif | 449 #endif |
| 456 | 450 |
| 457 ScopedOleInitializer ole_initializer; | 451 ScopedOleInitializer ole_initializer; |
| 458 rv = BrowserMain(main_params); | 452 rv = BrowserMain(main_params); |
| 459 } else { | 453 } else { |
| 460 NOTREACHED() << "Unknown process type"; | 454 NOTREACHED() << "Unknown process type"; |
| 461 } | 455 } |
| 462 | 456 |
| 463 if (!process_type.empty()) { | 457 if (!process_type.empty()) { |
| 464 ResourceBundle::CleanupSharedInstance(); | 458 ResourceBundle::CleanupSharedInstance(); |
| 465 } | 459 } |
| 466 | 460 |
| 467 #if defined(OS_WIN) | 461 #if defined(OS_WIN) |
| 468 #ifdef _CRTDBG_MAP_ALLOC | 462 #ifdef _CRTDBG_MAP_ALLOC |
| 469 _CrtDumpMemoryLeaks(); | 463 _CrtDumpMemoryLeaks(); |
| 470 #endif // _CRTDBG_MAP_ALLOC | 464 #endif // _CRTDBG_MAP_ALLOC |
| 471 | 465 |
| 472 _Module.Term(); | 466 _Module.Term(); |
| 473 #endif | 467 #endif |
| 474 | 468 |
| 475 logging::CleanupChromeLogging(); | 469 logging::CleanupChromeLogging(); |
| 476 | 470 |
| 477 return rv; | 471 return rv; |
| 478 } | 472 } |
| OLD | NEW |