Chromium Code Reviews| Index: chrome/browser/metrics/profiler_metrics_provider.h |
| diff --git a/chrome/browser/metrics/profiler_metrics_provider.h b/chrome/browser/metrics/profiler_metrics_provider.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..680156bf8472038a94f68ec4a9fc7510e7ab2828 |
| --- /dev/null |
| +++ b/chrome/browser/metrics/profiler_metrics_provider.h |
| @@ -0,0 +1,45 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_BROWSER_METRICS_PROFILER_METRICS_PROVIDER_H_ |
| +#define CHROME_BROWSER_METRICS_PROFILER_METRICS_PROVIDER_H_ |
| + |
| +#include "base/basictypes.h" |
| +#include "components/metrics/metrics_provider.h" |
| +#include "components/metrics/proto/chrome_user_metrics_extension.pb.h" |
| + |
| +namespace tracked_objects { |
| +struct ProcessDataSnapshot; |
| +} |
| + |
| +// ProfilerMetricsProvider is responsible for filling out the |profiler_event| |
| +// section of the UMA proto. |
| +class ProfilerMetricsProvider : public metrics::MetricsProvider { |
| + public: |
| + ProfilerMetricsProvider(); |
| + virtual ~ProfilerMetricsProvider(); |
| + |
| + // metrics::MetricsDataProvider: |
| + virtual void ProvideGeneralMetrics( |
| + metrics::ChromeUserMetricsExtension* uma_proto) OVERRIDE; |
| + |
| + // Records the passed profiled data, which should be a snapshot of the |
| + // browser's profiled performance during startup for a single process. |
| + void RecordProfilerData( |
| + const tracked_objects::ProcessDataSnapshot& process_data, |
| + int process_type); |
| + |
| + private: |
| + // Saved cache of generated Profiler event protos, to be copied into the UMA |
| + // proto when ProvideGeneralMetrics() is called. |
| + metrics::ProfilerEventProto profiler_event_cache_; |
| + |
| + // True if this instance has recorded profiler data since the last call to |
| + // ProvideGeneralMetrics(). |
| + bool has_profiler_data_; |
|
Ilya Sherman
2014/06/02 21:58:16
Do we need this extra variable, or can we just che
blundell
2014/06/03 12:23:47
I don't actually know how to do that (I'm not very
Ilya Sherman
2014/06/03 19:02:29
You could, for example, check whether profiler_eve
blundell
2014/10/29 13:24:04
Sorry, I've never been able to get around to this.
|
| + |
| + DISALLOW_COPY_AND_ASSIGN(ProfilerMetricsProvider); |
| +}; |
| + |
| +#endif // CHROME_BROWSER_METRICS_PROFILER_METRICS_PROVIDER_H_ |