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 "chrome/browser/extensions/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 RunImpl() 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 RunImpl() 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 RunImpl() 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 RunImpl() OVERRIDE; 62}; 63 64class MetricsHistogramHelperFunction : public SyncExtensionFunction { 65 protected: 66 virtual ~MetricsHistogramHelperFunction() {} 67 bool GetNameAndSample(std::string* name, int* sample); 68 virtual bool RecordValue(const std::string& name, 69 base::HistogramType type, 70 int min, int max, size_t buckets, 71 int sample); 72}; 73 74class MetricsPrivateRecordValueFunction 75 : public MetricsHistogramHelperFunction { 76 public: 77 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordValue", 78 METRICSPRIVATE_RECORDVALUE) 79 80 protected: 81 virtual ~MetricsPrivateRecordValueFunction() {} 82 83 // ExtensionFunction: 84 virtual bool RunImpl() OVERRIDE; 85}; 86 87class MetricsPrivateRecordPercentageFunction 88 : public MetricsHistogramHelperFunction { 89 public: 90 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordPercentage", 91 METRICSPRIVATE_RECORDPERCENTAGE) 92 93 protected: 94 virtual ~MetricsPrivateRecordPercentageFunction() {} 95 96 // ExtensionFunction: 97 virtual bool RunImpl() OVERRIDE; 98}; 99 100class MetricsPrivateRecordCountFunction 101 : public MetricsHistogramHelperFunction { 102 public: 103 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordCount", 104 METRICSPRIVATE_RECORDCOUNT) 105 106 protected: 107 virtual ~MetricsPrivateRecordCountFunction() {} 108 109 // ExtensionFunction: 110 virtual bool RunImpl() OVERRIDE; 111}; 112 113class MetricsPrivateRecordSmallCountFunction 114 : public MetricsHistogramHelperFunction { 115 public: 116 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordSmallCount", 117 METRICSPRIVATE_RECORDSMALLCOUNT) 118 119 protected: 120 virtual ~MetricsPrivateRecordSmallCountFunction() {} 121 122 // ExtensionFunction: 123 virtual bool RunImpl() OVERRIDE; 124}; 125 126class MetricsPrivateRecordMediumCountFunction 127 : public MetricsHistogramHelperFunction { 128 public: 129 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordMediumCount", 130 METRICSPRIVATE_RECORDMEDIUMCOUNT) 131 132 protected: 133 virtual ~MetricsPrivateRecordMediumCountFunction() {} 134 135 // ExtensionFunction: 136 virtual bool RunImpl() OVERRIDE; 137}; 138 139class MetricsPrivateRecordTimeFunction : public MetricsHistogramHelperFunction { 140 public: 141 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordTime", 142 METRICSPRIVATE_RECORDTIME) 143 144 protected: 145 virtual ~MetricsPrivateRecordTimeFunction() {} 146 147 // ExtensionFunction: 148 virtual bool RunImpl() OVERRIDE; 149}; 150 151class MetricsPrivateRecordMediumTimeFunction 152 : public MetricsHistogramHelperFunction { 153 public: 154 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordMediumTime", 155 METRICSPRIVATE_RECORDMEDIUMTIME) 156 157 protected: 158 virtual ~MetricsPrivateRecordMediumTimeFunction() {} 159 160 // ExtensionFunction: 161 virtual bool RunImpl() OVERRIDE; 162}; 163 164class MetricsPrivateRecordLongTimeFunction 165 : public MetricsHistogramHelperFunction { 166 public: 167 DECLARE_EXTENSION_FUNCTION("metricsPrivate.recordLongTime", 168 METRICSPRIVATE_RECORDLONGTIME) 169 170 protected: 171 virtual ~MetricsPrivateRecordLongTimeFunction() {} 172 173 // ExtensionFunction: 174 virtual bool RunImpl() OVERRIDE; 175}; 176 177} // namespace extensions 178 179#endif // CHROME_BROWSER_EXTENSIONS_API_METRICS_PRIVATE_METRICS_PRIVATE_API_H_ 180