Home | History | Annotate | Download | only in metrics_private
      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