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_ 192