Index: chrome/browser/chrome_browser_main.cc |
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc |
index 6369faf66a410fc7b55ad7b9f1db27668680fbc2..54cf77578bef3dc5ab76a7bcf38ae9874b9a25ec 100644 |
--- a/chrome/browser/chrome_browser_main.cc |
+++ b/chrome/browser/chrome_browser_main.cc |
@@ -63,6 +63,7 @@ |
#include "chrome/browser/notifications/desktop_notification_service.h" |
#include "chrome/browser/notifications/desktop_notification_service_factory.h" |
#include "chrome/browser/page_cycler/page_cycler.h" |
+#include "chrome/browser/performance_monitor/startup_timer.h" |
#include "chrome/browser/plugin_prefs.h" |
#include "chrome/browser/prefs/pref_service.h" |
#include "chrome/browser/prefs/pref_value_store.h" |
@@ -568,6 +569,7 @@ ChromeBrowserMainParts::ChromeBrowserMainParts( |
result_code_(content::RESULT_CODE_NORMAL_EXIT), |
startup_watcher_(new StartupTimeBomb()), |
shutdown_watcher_(new ShutdownWatcherHelper()), |
+ startup_timer_(new performance_monitor::StartupTimer()), |
record_search_engine_(false), |
translate_manager_(NULL), |
profile_(NULL), |
@@ -1939,6 +1941,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
PostBrowserStart(); |
if (parameters().ui_task) { |
+ // We end the startup timer here if we have parameters to run, because we |
+ // never start to run the main loop (where we normally stop the timer). |
+ startup_timer_->SignalStartupComplete( |
+ performance_monitor::StartupTimer::STARTUP_TEST); |
parameters().ui_task->Run(); |
delete parameters().ui_task; |
run_message_loop_ = false; |
@@ -1953,10 +1959,13 @@ bool ChromeBrowserMainParts::MainMessageLoopRun(int* result_code) { |
if (!run_message_loop_) |
return true; // Don't run the default message loop. |
- // This should be invoked as close to the start of the browser's |
+ // These should be invoked as close to the start of the browser's |
// UI thread message loop as possible to get a stable measurement |
// across versions. |
RecordBrowserStartupTime(); |
+ startup_timer_->SignalStartupComplete( |
+ performance_monitor::StartupTimer::STARTUP_NORMAL); |
+ |
DCHECK_EQ(MessageLoop::TYPE_UI, MessageLoop::current()->type()); |
#if !defined(USE_AURA) && defined(TOOLKIT_VIEWS) |
views::AcceleratorHandler accelerator_handler; |