Chromium Code Reviews| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/base_paths.h" | 10 #include "base/base_paths.h" |
| (...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 427 if (process_type.empty()) { | 427 if (process_type.empty()) { |
| 428 file_state = logging::DELETE_OLD_LOG_FILE; | 428 file_state = logging::DELETE_OLD_LOG_FILE; |
| 429 } | 429 } |
| 430 const base::CommandLine& command_line = | 430 const base::CommandLine& command_line = |
| 431 *base::CommandLine::ForCurrentProcess(); | 431 *base::CommandLine::ForCurrentProcess(); |
| 432 logging::InitChromeLogging(command_line, file_state); | 432 logging::InitChromeLogging(command_line, file_state); |
| 433 } | 433 } |
| 434 #endif | 434 #endif |
| 435 | 435 |
| 436 #if !defined(CHROME_MULTIPLE_DLL_CHILD) | 436 #if !defined(CHROME_MULTIPLE_DLL_CHILD) |
| 437 void RecordMainStartupMetrics() { | 437 void RecordMainStartupMetrics(int64_t exe_entry_point_ticks) { |
|
fdoray
2016/09/19 17:03:28
base::TimeTicks
grt (UTC plus 2)
2016/09/19 19:52:46
Done.
| |
| 438 #if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) | 438 #if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) |
| 439 if (exe_entry_point_ticks) { | |
| 440 startup_metric_utils::RecordExeMainEntryPointTicks( | |
| 441 base::TimeTicks::FromInternalValue(exe_entry_point_ticks)); | |
| 442 } | |
| 439 // Record the startup process creation time on supported platforms. | 443 // Record the startup process creation time on supported platforms. |
| 440 startup_metric_utils::RecordStartupProcessCreationTime( | 444 startup_metric_utils::RecordStartupProcessCreationTime( |
| 441 base::CurrentProcessInfo::CreationTime()); | 445 base::CurrentProcessInfo::CreationTime()); |
| 442 #endif | 446 #endif |
| 443 | 447 |
| 444 // On Android the main entry point time is the time when the Java code starts. | 448 // On Android the main entry point time is the time when the Java code starts. |
| 445 // This happens before the shared library containing this code is even loaded. | 449 // This happens before the shared library containing this code is even loaded. |
| 446 // The Java startup code has recorded that time, but the C++ code can't fetch it | 450 // The Java startup code has recorded that time, but the C++ code can't fetch it |
| 447 // from the Java side until it has initialized the JNI. See | 451 // from the Java side until it has initialized the JNI. See |
| 448 // ChromeMainDelegateAndroid. | 452 // ChromeMainDelegateAndroid. |
| 449 #if !defined(OS_ANDROID) | 453 #if !defined(OS_ANDROID) |
| 450 startup_metric_utils::RecordMainEntryPointTime(base::Time::Now()); | 454 startup_metric_utils::RecordMainEntryPointTime(base::Time::Now()); |
| 451 #endif | 455 #endif |
| 452 } | 456 } |
| 453 #endif // !defined(CHROME_MULTIPLE_DLL_CHILD) | 457 #endif // !defined(CHROME_MULTIPLE_DLL_CHILD) |
| 454 | 458 |
| 455 } // namespace | 459 } // namespace |
| 456 | 460 |
| 457 ChromeMainDelegate::ChromeMainDelegate() { | 461 ChromeMainDelegate::ChromeMainDelegate() : ChromeMainDelegate(0) {} |
|
brucedawson
2016/09/16 21:38:39
I hadn't realized that delegating constructors wer
grt (UTC plus 2)
2016/09/17 09:30:05
Default values for args are somewhat discouraged b
| |
| 462 | |
| 463 ChromeMainDelegate::ChromeMainDelegate(int64_t exe_entry_point_ticks) { | |
| 458 #if !defined(CHROME_MULTIPLE_DLL_CHILD) | 464 #if !defined(CHROME_MULTIPLE_DLL_CHILD) |
| 459 // Record startup metrics in the browser process. For component builds, there | 465 // Record startup metrics in the browser process. For component builds, there |
| 460 // is no way to know the type of process (process command line is not yet | 466 // is no way to know the type of process (process command line is not yet |
| 461 // initialized), so the function below will also be called in renderers. | 467 // initialized), so the function below will also be called in renderers. |
| 462 // This doesn't matter as it simply sets global variables. | 468 // This doesn't matter as it simply sets global variables. |
| 463 RecordMainStartupMetrics(); | 469 RecordMainStartupMetrics(exe_entry_point_ticks); |
| 464 #endif // !defined(CHROME_MULTIPLE_DLL_CHILD) | 470 #endif // !defined(CHROME_MULTIPLE_DLL_CHILD) |
| 465 } | 471 } |
| 466 | 472 |
| 467 ChromeMainDelegate::~ChromeMainDelegate() { | 473 ChromeMainDelegate::~ChromeMainDelegate() { |
| 468 } | 474 } |
| 469 | 475 |
| 470 bool ChromeMainDelegate::BasicStartupComplete(int* exit_code) { | 476 bool ChromeMainDelegate::BasicStartupComplete(int* exit_code) { |
| 471 #if defined(OS_CHROMEOS) | 477 #if defined(OS_CHROMEOS) |
| 472 chromeos::BootTimesRecorder::Get()->SaveChromeMainStats(); | 478 chromeos::BootTimesRecorder::Get()->SaveChromeMainStats(); |
| 473 #endif | 479 #endif |
| (...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1052 case version_info::Channel::CANARY: | 1058 case version_info::Channel::CANARY: |
| 1053 return true; | 1059 return true; |
| 1054 case version_info::Channel::DEV: | 1060 case version_info::Channel::DEV: |
| 1055 case version_info::Channel::BETA: | 1061 case version_info::Channel::BETA: |
| 1056 case version_info::Channel::STABLE: | 1062 case version_info::Channel::STABLE: |
| 1057 default: | 1063 default: |
| 1058 // Don't enable instrumentation. | 1064 // Don't enable instrumentation. |
| 1059 return false; | 1065 return false; |
| 1060 } | 1066 } |
| 1061 } | 1067 } |
| OLD | NEW |