OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/app/chrome_main_delegate.h" | 5 #include "chrome/app/chrome_main_delegate.h" |
6 | 6 |
7 #include "base/base_paths.h" | 7 #include "base/base_paths.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/cpu.h" | 9 #include "base/cpu.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 CHECK(process_type.empty()) << "Unable to get the user data directory " | 381 CHECK(process_type.empty()) << "Unable to get the user data directory " |
382 << "for process type: " << process_type; | 382 << "for process type: " << process_type; |
383 } | 383 } |
384 | 384 |
385 // Append the fallback user data directory to the commandline. Otherwise, | 385 // Append the fallback user data directory to the commandline. Otherwise, |
386 // child or service processes will attempt to use the invalid directory. | 386 // child or service processes will attempt to use the invalid directory. |
387 if (specified_directory_was_invalid) | 387 if (specified_directory_was_invalid) |
388 command_line->AppendSwitchPath(switches::kUserDataDir, user_data_dir); | 388 command_line->AppendSwitchPath(switches::kUserDataDir, user_data_dir); |
389 } | 389 } |
390 | 390 |
| 391 void InitLogging(const std::string& process_type) { |
| 392 logging::OldFileDeletionState file_state = |
| 393 logging::APPEND_TO_OLD_LOG_FILE; |
| 394 if (process_type.empty()) { |
| 395 file_state = logging::DELETE_OLD_LOG_FILE; |
| 396 } |
| 397 const base::CommandLine& command_line = |
| 398 *base::CommandLine::ForCurrentProcess(); |
| 399 logging::InitChromeLogging(command_line, file_state); |
| 400 } |
| 401 |
391 } // namespace | 402 } // namespace |
392 | 403 |
393 ChromeMainDelegate::ChromeMainDelegate() { | 404 ChromeMainDelegate::ChromeMainDelegate() { |
394 #if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) | 405 #if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) |
395 // Record the startup process creation time on supported platforms. | 406 // Record the startup process creation time on supported platforms. |
396 startup_metric_utils::RecordStartupProcessCreationTime( | 407 startup_metric_utils::RecordStartupProcessCreationTime( |
397 base::CurrentProcessInfo::CreationTime()); | 408 base::CurrentProcessInfo::CreationTime()); |
398 #endif | 409 #endif |
399 | 410 |
400 // On Android the main entry point time is the time when the Java code starts. | 411 // On Android the main entry point time is the time when the Java code starts. |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
655 InitializeUserDataDir(); | 666 InitializeUserDataDir(); |
656 | 667 |
657 // Register component_updater PathProvider after DIR_USER_DATA overidden by | 668 // Register component_updater PathProvider after DIR_USER_DATA overidden by |
658 // command line flags. Maybe move the chrome PathProvider down here also? | 669 // command line flags. Maybe move the chrome PathProvider down here also? |
659 component_updater::RegisterPathProvider(chrome::DIR_USER_DATA); | 670 component_updater::RegisterPathProvider(chrome::DIR_USER_DATA); |
660 | 671 |
661 // Enable Message Loop related state asap. | 672 // Enable Message Loop related state asap. |
662 if (command_line.HasSwitch(switches::kMessageLoopHistogrammer)) | 673 if (command_line.HasSwitch(switches::kMessageLoopHistogrammer)) |
663 base::MessageLoop::EnableHistogrammer(true); | 674 base::MessageLoop::EnableHistogrammer(true); |
664 | 675 |
665 #if !defined(OS_ANDROID) | 676 #if !defined(OS_ANDROID) && !defined(OS_WIN) |
666 // Android does InitLogging when library is loaded. Skip here. | 677 // Android does InitLogging when library is loaded. Skip here. |
667 logging::OldFileDeletionState file_state = | 678 // For windows we call InitLogging when the sandbox is initialized. |
668 logging::APPEND_TO_OLD_LOG_FILE; | 679 InitLogging(process_type); |
669 if (process_type.empty()) { | |
670 file_state = logging::DELETE_OLD_LOG_FILE; | |
671 } | |
672 logging::InitChromeLogging(command_line, file_state); | |
673 #endif | 680 #endif |
674 | 681 |
675 #if defined(OS_WIN) | 682 #if defined(OS_WIN) |
676 // TODO(zturner): Throbber icons are still stored in chrome.dll, this can be | 683 // TODO(zturner): Throbber icons are still stored in chrome.dll, this can be |
677 // killed once those are merged into resources.pak. See | 684 // killed once those are merged into resources.pak. See |
678 // GlassBrowserFrameView::InitThrobberIcons() and http://crbug.com/368327. | 685 // GlassBrowserFrameView::InitThrobberIcons() and http://crbug.com/368327. |
679 ui::SetResourcesDataDLL(_AtlBaseModule.GetResourceInstance()); | 686 ui::SetResourcesDataDLL(_AtlBaseModule.GetResourceInstance()); |
680 #endif | 687 #endif |
681 | 688 |
682 if (SubprocessNeedsResourceBundle(process_type)) { | 689 if (SubprocessNeedsResourceBundle(process_type)) { |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
773 crash_keys::SetSwitchesFromCommandLine(&command_line); | 780 crash_keys::SetSwitchesFromCommandLine(&command_line); |
774 } | 781 } |
775 | 782 |
776 void ChromeMainDelegate::SandboxInitialized(const std::string& process_type) { | 783 void ChromeMainDelegate::SandboxInitialized(const std::string& process_type) { |
777 // Note: If you are adding a new process type below, be sure to adjust the | 784 // Note: If you are adding a new process type below, be sure to adjust the |
778 // AdjustLinuxOOMScore function too. | 785 // AdjustLinuxOOMScore function too. |
779 #if defined(OS_LINUX) | 786 #if defined(OS_LINUX) |
780 AdjustLinuxOOMScore(process_type); | 787 AdjustLinuxOOMScore(process_type); |
781 #endif | 788 #endif |
782 #if defined(OS_WIN) | 789 #if defined(OS_WIN) |
| 790 InitLogging(process_type); |
783 SuppressWindowsErrorDialogs(); | 791 SuppressWindowsErrorDialogs(); |
784 #endif | 792 #endif |
785 | 793 |
786 #if defined(CHROME_MULTIPLE_DLL_CHILD) || !defined(CHROME_MULTIPLE_DLL_BROWSER) | 794 #if defined(CHROME_MULTIPLE_DLL_CHILD) || !defined(CHROME_MULTIPLE_DLL_BROWSER) |
787 #if !defined(DISABLE_NACL) | 795 #if !defined(DISABLE_NACL) |
788 ChromeContentClient::SetNaClEntryFunctions( | 796 ChromeContentClient::SetNaClEntryFunctions( |
789 nacl_plugin::PPP_GetInterface, | 797 nacl_plugin::PPP_GetInterface, |
790 nacl_plugin::PPP_InitializeModule, | 798 nacl_plugin::PPP_InitializeModule, |
791 nacl_plugin::PPP_ShutdownModule); | 799 nacl_plugin::PPP_ShutdownModule); |
792 #endif | 800 #endif |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
945 case version_info::Channel::CANARY: | 953 case version_info::Channel::CANARY: |
946 return true; | 954 return true; |
947 case version_info::Channel::DEV: | 955 case version_info::Channel::DEV: |
948 case version_info::Channel::BETA: | 956 case version_info::Channel::BETA: |
949 case version_info::Channel::STABLE: | 957 case version_info::Channel::STABLE: |
950 default: | 958 default: |
951 // Don't enable instrumentation. | 959 // Don't enable instrumentation. |
952 return false; | 960 return false; |
953 } | 961 } |
954 } | 962 } |
OLD | NEW |