Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / metrics_private / metrics_private_api.h
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:
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:
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:
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:
58   virtual ~MetricsPrivateRecordUserActionFunction() {}
59
60   // ExtensionFunction:
61   virtual bool RunSync() OVERRIDE;
62 };
63
64 class MetricsHistogramHelperFunction : public SyncExtensionFunction {
65  protected:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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_