| Index: components/startup_metric_utils/browser/startup_metric_utils.cc
|
| diff --git a/components/startup_metric_utils/browser/startup_metric_utils.cc b/components/startup_metric_utils/browser/startup_metric_utils.cc
|
| index 6d0ec9a7123037b057720c49e3b25a249bbca3d1..d45b768c291c959c685470ab56fd2011ec5f76bd 100644
|
| --- a/components/startup_metric_utils/browser/startup_metric_utils.cc
|
| +++ b/components/startup_metric_utils/browser/startup_metric_utils.cc
|
| @@ -16,11 +16,13 @@
|
| #include "base/metrics/histogram.h"
|
| #include "base/metrics/histogram_macros.h"
|
| #include "base/process/process_info.h"
|
| +#include "base/profiler/stack_sampling_profiler.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/sys_info.h"
|
| #include "base/threading/platform_thread.h"
|
| #include "base/trace_event/trace_event.h"
|
| #include "build/build_config.h"
|
| +#include "components/metrics/call_stack_profile_metrics_provider.h"
|
| #include "components/prefs/pref_registry_simple.h"
|
| #include "components/prefs/pref_service.h"
|
| #include "components/startup_metric_utils/browser/pref_names.h"
|
| @@ -592,15 +594,16 @@ void RecordBrowserMainMessageLoopStart(const base::TimeTicks& ticks,
|
| PrefService* pref_service) {
|
| DCHECK(pref_service);
|
|
|
| + // Keep RecordSameVersionStartupCount() and RecordHardFaultHistogram()
|
| + // near the top of this method (as much as possible) as many other
|
| + // histograms depend on it setting |g_startup_temperature| and
|
| + // |g_startups_with_current_version|.
|
| RecordSameVersionStartupCount(pref_service);
|
| - // Keep RecordHardFaultHistogram() first as much as possible as many other
|
| - // histograms depend on it setting |g_startup_temperature|.
|
| RecordHardFaultHistogram();
|
| - AddStartupEventsForTelemetry();
|
| - RecordTimeSinceLastStartup(pref_service);
|
| - RecordSystemUptimeHistogram();
|
| - RecordMainEntryTimeHistogram();
|
|
|
| + // Record timing of the browser message-loop start time.
|
| + base::StackSamplingProfiler::SetProcessMilestone(
|
| + metrics::CallStackProfileMetricsProvider::MAIN_LOOP_START);
|
| const base::TimeTicks& process_creation_ticks =
|
| g_process_creation_ticks.Get();
|
| if (!is_first_run && !process_creation_ticks.is_null()) {
|
| @@ -623,6 +626,11 @@ void RecordBrowserMainMessageLoopStart(const base::TimeTicks& ticks,
|
| g_browser_main_entry_point_ticks.Get(), ticks);
|
| }
|
|
|
| + AddStartupEventsForTelemetry();
|
| + RecordTimeSinceLastStartup(pref_service);
|
| + RecordSystemUptimeHistogram();
|
| + RecordMainEntryTimeHistogram();
|
| +
|
| // Record timings between process creation, the main() in the executable being
|
| // reached and the main() in the shared library being reached.
|
| if (!process_creation_ticks.is_null() &&
|
| @@ -705,6 +713,8 @@ void RecordFirstWebContentsNonEmptyPaint(const base::TimeTicks& ticks) {
|
| if (WasNonBrowserUIDisplayed() || g_process_creation_ticks.Get().is_null())
|
| return;
|
|
|
| + base::StackSamplingProfiler::SetProcessMilestone(
|
| + metrics::CallStackProfileMetricsProvider::FIRST_NONEMPTY_PAINT);
|
| UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT(
|
| UMA_HISTOGRAM_LONG_TIMES_100, "Startup.FirstWebContents.NonEmptyPaint2",
|
| g_process_creation_ticks.Get(), ticks);
|
| @@ -718,6 +728,8 @@ void RecordFirstWebContentsMainNavigationStart(const base::TimeTicks& ticks) {
|
| if (WasNonBrowserUIDisplayed() || g_process_creation_ticks.Get().is_null())
|
| return;
|
|
|
| + base::StackSamplingProfiler::SetProcessMilestone(
|
| + metrics::CallStackProfileMetricsProvider::MAIN_NAVIGATION_START);
|
| UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT(
|
| UMA_HISTOGRAM_LONG_TIMES_100,
|
| "Startup.FirstWebContents.MainNavigationStart",
|
| @@ -733,6 +745,8 @@ void RecordFirstWebContentsMainNavigationFinished(
|
| if (WasNonBrowserUIDisplayed() || g_process_creation_ticks.Get().is_null())
|
| return;
|
|
|
| + base::StackSamplingProfiler::SetProcessMilestone(
|
| + metrics::CallStackProfileMetricsProvider::MAIN_NAVIGATION_FINISHED);
|
| UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT(
|
| UMA_HISTOGRAM_LONG_TIMES_100,
|
| "Startup.FirstWebContents.MainNavigationFinished",
|
|
|