1 // Copyright (c) 2012 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 CHROME_BROWSER_EXTENSIONS_API_METRICS_PRIVATE_METRICS_PRIVATE_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_METRICS_PRIVATE_METRICS_PRIVATE_API_H_
10 #include "base/metrics/histogram.h"
11 #include "extensions/browser/extension_function.h"
13 namespace extensions {
15 class MetricsPrivateGetIsCrashReportingEnabledFunction
16 : public SyncExtensionFunction {
18 DECLARE_EXTENSION_FUNCTION("metricsPrivate.getIsCrashReportingEnabled",
19 METRICSPRIVATE_GETISCRASHRECORDINGENABLED)
22 virtual ~MetricsPrivateGetIsCrashReportingEnabledFunction() {}
25 virtual bool RunSync() OVERRIDE;
28 class MetricsPrivateGetFieldTrialFunction : public SyncExtensionFunction {
30 DECLARE_EXTENSION_FUNCTION("metricsPrivate.getFieldTrial",
31 METRICSPRIVATE_GETFIELDTRIAL)
34 virtual ~MetricsPrivateGetFieldTrialFunction() {}
37 virtual bool RunSync() OVERRIDE;
40 class MetricsPrivateGetVariationParamsFunction : public SyncExtensionFunction {
42 DECLARE_EXTENSION_FUNCTION("metricsPrivate.getVariationParams",
43 METRICSPRIVATE_GETVARIATIONPARAMS)
46 virtual ~MetricsPrivateGetVariationParamsFunction() {}
49 virtual bool RunSync() OVERRIDE;
52 class MetricsPrivateRecordUserActionFunction : public SyncExtensionFunction {
54 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordUserAction",
55 METRICSPRIVATE_RECORDUSERACTION)
58 virtual ~MetricsPrivateRecordUserActionFunction() {}
61 virtual bool RunSync() OVERRIDE;
64 class MetricsHistogramHelperFunction : public SyncExtensionFunction {
66 virtual ~MetricsHistogramHelperFunction() {}
67 virtual bool RecordValue(const std::string& name,
68 base::HistogramType type,
69 int min, int max, size_t buckets,
73 class MetricsPrivateRecordValueFunction
74 : public MetricsHistogramHelperFunction {
76 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordValue",
77 METRICSPRIVATE_RECORDVALUE)
80 virtual ~MetricsPrivateRecordValueFunction() {}
83 virtual bool RunSync() OVERRIDE;
86 class MetricsPrivateRecordSparseValueFunction
87 : public MetricsHistogramHelperFunction {
89 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordSparseValue",
90 METRICSPRIVATE_RECORDSPARSEVALUE)
93 virtual ~MetricsPrivateRecordSparseValueFunction() {}
96 virtual bool RunSync() OVERRIDE;
99 class MetricsPrivateRecordPercentageFunction
100 : public MetricsHistogramHelperFunction {
102 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordPercentage",
103 METRICSPRIVATE_RECORDPERCENTAGE)
106 virtual ~MetricsPrivateRecordPercentageFunction() {}
108 // ExtensionFunction:
109 virtual bool RunSync() OVERRIDE;
112 class MetricsPrivateRecordCountFunction
113 : public MetricsHistogramHelperFunction {
115 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordCount",
116 METRICSPRIVATE_RECORDCOUNT)
119 virtual ~MetricsPrivateRecordCountFunction() {}
121 // ExtensionFunction:
122 virtual bool RunSync() OVERRIDE;
125 class MetricsPrivateRecordSmallCountFunction
126 : public MetricsHistogramHelperFunction {
128 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordSmallCount",
129 METRICSPRIVATE_RECORDSMALLCOUNT)
132 virtual ~MetricsPrivateRecordSmallCountFunction() {}
134 // ExtensionFunction:
135 virtual bool RunSync() OVERRIDE;
138 class MetricsPrivateRecordMediumCountFunction
139 : public MetricsHistogramHelperFunction {
141 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordMediumCount",
142 METRICSPRIVATE_RECORDMEDIUMCOUNT)
145 virtual ~MetricsPrivateRecordMediumCountFunction() {}
147 // ExtensionFunction:
148 virtual bool RunSync() OVERRIDE;
151 class MetricsPrivateRecordTimeFunction : public MetricsHistogramHelperFunction {
153 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordTime",
154 METRICSPRIVATE_RECORDTIME)
157 virtual ~MetricsPrivateRecordTimeFunction() {}
159 // ExtensionFunction:
160 virtual bool RunSync() OVERRIDE;
163 class MetricsPrivateRecordMediumTimeFunction
164 : public MetricsHistogramHelperFunction {
166 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordMediumTime",
167 METRICSPRIVATE_RECORDMEDIUMTIME)
170 virtual ~MetricsPrivateRecordMediumTimeFunction() {}
172 // ExtensionFunction:
173 virtual bool RunSync() OVERRIDE;
176 class MetricsPrivateRecordLongTimeFunction
177 : public MetricsHistogramHelperFunction {
179 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordLongTime",
180 METRICSPRIVATE_RECORDLONGTIME)
183 virtual ~MetricsPrivateRecordLongTimeFunction() {}
185 // ExtensionFunction:
186 virtual bool RunSync() OVERRIDE;
189 } // namespace extensions
191 #endif // CHROME_BROWSER_EXTENSIONS_API_METRICS_PRIVATE_METRICS_PRIVATE_API_H_