| Index: chrome/browser/chrome_browser_main.cc
|
| diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
|
| index e8612a18a4d7a25953c8afaf9187d781462b4dd1..7265e7465f63ba6012966866a9e6442157238615 100644
|
| --- a/chrome/browser/chrome_browser_main.cc
|
| +++ b/chrome/browser/chrome_browser_main.cc
|
| @@ -686,7 +686,15 @@ void ChromeBrowserMainParts::RecordBrowserStartupTime() {
|
| if (startup_metric_utils::WasNonBrowserUIDisplayed())
|
| return;
|
|
|
| +#if defined(OS_ANDROID)
|
| + // On Android the first run is handled in Java code, and the C++ side of
|
| + // Chrome doesn't know if this is the first run. This will cause some
|
| + // inaccuracy in the UMA statistics, but this should be minor (first runs are
|
| + // rare).
|
| + bool is_first_run = false;
|
| +#else
|
| bool is_first_run = first_run::IsChromeFirstRun();
|
| +#endif
|
|
|
| // CurrentProcessInfo::CreationTime() is currently only implemented on some
|
| // platforms.
|
| @@ -1595,7 +1603,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
|
| delete parameters().ui_task;
|
| run_message_loop_ = false;
|
| }
|
| -
|
| +#if defined(OS_ANDROID)
|
| + // We never run the C++ main loop on Android, since the UI thread message
|
| + // loop is controlled by the OS, so this is as close as we can get to
|
| + // the start of the main loop
|
| + if (result_code_ <= 0) {
|
| + RecordBrowserStartupTime();
|
| + }
|
| +#endif
|
| return result_code_;
|
| }
|
|
|
|
|