• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_METRICS_PRIVATE_METRICS_PRIVATE_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_METRICS_PRIVATE_METRICS_PRIVATE_API_H_
7 
8 #include <string>
9 
10 #include "base/metrics/histogram.h"
11 #include "extensions/browser/extension_function.h"
12 
13 namespace extensions {
14 
15 class MetricsPrivateGetIsCrashReportingEnabledFunction
16     : public SyncExtensionFunction {
17  public:
18   DECLARE_EXTENSION_FUNCTION("metricsPrivate.getIsCrashReportingEnabled",
19                              METRICSPRIVATE_GETISCRASHRECORDINGENABLED)
20 
21  protected:
~MetricsPrivateGetIsCrashReportingEnabledFunction()22   virtual ~MetricsPrivateGetIsCrashReportingEnabledFunction() {}
23 
24   // ExtensionFunction:
25   virtual bool RunSync() OVERRIDE;
26 };
27 
28 class MetricsPrivateGetFieldTrialFunction : public SyncExtensionFunction {
29  public:
30   DECLARE_EXTENSION_FUNCTION("metricsPrivate.getFieldTrial",
31                              METRICSPRIVATE_GETFIELDTRIAL)
32 
33  protected:
~MetricsPrivateGetFieldTrialFunction()34   virtual ~MetricsPrivateGetFieldTrialFunction() {}
35 
36   // ExtensionFunction:
37   virtual bool RunSync() OVERRIDE;
38 };
39 
40 class MetricsPrivateGetVariationParamsFunction : public SyncExtensionFunction {
41  public:
42   DECLARE_EXTENSION_FUNCTION("metricsPrivate.getVariationParams",
43                              METRICSPRIVATE_GETVARIATIONPARAMS)
44 
45  protected:
~MetricsPrivateGetVariationParamsFunction()46   virtual ~MetricsPrivateGetVariationParamsFunction() {}
47 
48   // ExtensionFunction:
49   virtual bool RunSync() OVERRIDE;
50 };
51 
52 class MetricsPrivateRecordUserActionFunction : public SyncExtensionFunction {
53  public:
54   DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordUserAction",
55                              METRICSPRIVATE_RECORDUSERACTION)
56 
57  protected:
~MetricsPrivateRecordUserActionFunction()58   virtual ~MetricsPrivateRecordUserActionFunction() {}
59 
60   // ExtensionFunction:
61   virtual bool RunSync() OVERRIDE;
62 };
63 
64 class MetricsHistogramHelperFunction : public SyncExtensionFunction {
65  protected:
~MetricsHistogramHelperFunction()66   virtual ~MetricsHistogramHelperFunction() {}
67   virtual bool RecordValue(const std::string& name,
68                            base::HistogramType type,
69                            int min, int max, size_t buckets,
70                            int sample);
71 };
72 
73 class MetricsPrivateRecordValueFunction
74     : public MetricsHistogramHelperFunction {
75  public:
76   DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordValue",
77                              METRICSPRIVATE_RECORDVALUE)
78 
79  protected:
~MetricsPrivateRecordValueFunction()80   virtual ~MetricsPrivateRecordValueFunction() {}
81 
82   // ExtensionFunction:
83   virtual bool RunSync() OVERRIDE;
84 };
85 
86 class MetricsPrivateRecordSparseValueFunction
87     : public MetricsHistogramHelperFunction {
88  public:
89   DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordSparseValue",
90                              METRICSPRIVATE_RECORDSPARSEVALUE)
91 
92  protected:
~MetricsPrivateRecordSparseValueFunction()93   virtual ~MetricsPrivateRecordSparseValueFunction() {}
94 
95   // ExtensionFunction:
96   virtual bool RunSync() OVERRIDE;
97 };
98 
99 class MetricsPrivateRecordPercentageFunction
100     : public MetricsHistogramHelperFunction {
101  public:
102   DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordPercentage",
103                              METRICSPRIVATE_RECORDPERCENTAGE)
104 
105  protected:
~MetricsPrivateRecordPercentageFunction()106   virtual ~MetricsPrivateRecordPercentageFunction() {}
107 
108   // ExtensionFunction:
109   virtual bool RunSync() OVERRIDE;
110 };
111 
112 class MetricsPrivateRecordCountFunction
113     : public MetricsHistogramHelperFunction {
114  public:
115   DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordCount",
116                              METRICSPRIVATE_RECORDCOUNT)
117 
118  protected:
~MetricsPrivateRecordCountFunction()119   virtual ~MetricsPrivateRecordCountFunction() {}
120 
121   // ExtensionFunction:
122   virtual bool RunSync() OVERRIDE;
123 };
124 
125 class MetricsPrivateRecordSmallCountFunction
126     : public MetricsHistogramHelperFunction {
127  public:
128   DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordSmallCount",
129                              METRICSPRIVATE_RECORDSMALLCOUNT)
130 
131  protected:
~MetricsPrivateRecordSmallCountFunction()132   virtual ~MetricsPrivateRecordSmallCountFunction() {}
133 
134   // ExtensionFunction:
135   virtual bool RunSync() OVERRIDE;
136 };
137 
138 class MetricsPrivateRecordMediumCountFunction
139     : public MetricsHistogramHelperFunction {
140  public:
141   DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordMediumCount",
142                              METRICSPRIVATE_RECORDMEDIUMCOUNT)
143 
144  protected:
~MetricsPrivateRecordMediumCountFunction()145   virtual ~MetricsPrivateRecordMediumCountFunction() {}
146 
147   // ExtensionFunction:
148   virtual bool RunSync() OVERRIDE;
149 };
150 
151 class MetricsPrivateRecordTimeFunction : public MetricsHistogramHelperFunction {
152  public:
153   DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordTime",
154                              METRICSPRIVATE_RECORDTIME)
155 
156  protected:
~MetricsPrivateRecordTimeFunction()157   virtual ~MetricsPrivateRecordTimeFunction() {}
158 
159   // ExtensionFunction:
160   virtual bool RunSync() OVERRIDE;
161 };
162 
163 class MetricsPrivateRecordMediumTimeFunction
164     : public MetricsHistogramHelperFunction {
165  public:
166   DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordMediumTime",
167                              METRICSPRIVATE_RECORDMEDIUMTIME)
168 
169  protected:
~MetricsPrivateRecordMediumTimeFunction()170   virtual ~MetricsPrivateRecordMediumTimeFunction() {}
171 
172   // ExtensionFunction:
173   virtual bool RunSync() OVERRIDE;
174 };
175 
176 class MetricsPrivateRecordLongTimeFunction
177     : public MetricsHistogramHelperFunction {
178  public:
179   DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordLongTime",
180                              METRICSPRIVATE_RECORDLONGTIME)
181 
182  protected:
~MetricsPrivateRecordLongTimeFunction()183   virtual ~MetricsPrivateRecordLongTimeFunction() {}
184 
185   // ExtensionFunction:
186   virtual bool RunSync() OVERRIDE;
187 };
188 
189 } // namespace extensions
190 
191 #endif  // CHROME_BROWSER_EXTENSIONS_API_METRICS_PRIVATE_METRICS_PRIVATE_API_H_
192