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 13namespace extensions { 14 15class 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 28class 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 40class 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 52class 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 64class 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 73class 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 86class 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 99class 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 112class 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 125class 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 138class 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 151class 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 163class 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 176class 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