1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_METRICS_CALL_STACK_PROFILE_METRICS_PROVIDER_H_
6 #define COMPONENTS_METRICS_CALL_STACK_PROFILE_METRICS_PROVIDER_H_
10 #include "base/profiler/stack_sampling_profiler.h"
11 #include "components/metrics/metrics_provider.h"
14 class ChromeUserMetricsExtension
;
16 // Performs metrics logging for the stack sampling profiler.
17 class CallStackProfileMetricsProvider
: public MetricsProvider
{
19 CallStackProfileMetricsProvider();
20 ~CallStackProfileMetricsProvider() override
;
23 void ProvideGeneralMetrics(ChromeUserMetricsExtension
* uma_proto
) override
;
25 // Uses |profiles| as the source data for the next invocation of
26 // ProvideGeneralMetrics, rather than sourcing them from the
27 // StackSamplingProfiler.
28 void SetSourceProfilesForTesting(
29 const std::vector
<base::StackSamplingProfiler::Profile
>& profiles
);
32 std::vector
<base::StackSamplingProfiler::Profile
> source_profiles_for_test_
;
34 DISALLOW_COPY_AND_ASSIGN(CallStackProfileMetricsProvider
);
37 } // namespace metrics
39 #endif // COMPONENTS_METRICS_CALL_STACK_PROFILE_METRICS_PROVIDER_H_