1// Copyright 2014 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 COMPONENTS_GOOGLE_CORE_BROWSER_GOOGLE_SEARCH_METRICS_H_
6#define COMPONENTS_GOOGLE_CORE_BROWSER_GOOGLE_SEARCH_METRICS_H_
7
8#include "build/build_config.h"
9
10// A thin helper class used by parties interested in reporting Google search
11// metrics (mostly counts of searches from different access points). This class
12// partly exists to make testing easier.
13class GoogleSearchMetrics {
14 public:
15  // Various Google Search access points, to be used with UMA enumeration
16  // histograms.
17  enum AccessPoint {
18    AP_OMNIBOX,
19    AP_OMNIBOX_INSTANT,
20    AP_DIRECT_NAV,
21    AP_DIRECT_NAV_INSTANT,
22    AP_HOME_PAGE,
23    AP_HOME_PAGE_INSTANT,
24    AP_SEARCH_APP,
25    AP_SEARCH_APP_INSTANT,
26    AP_OTHER,
27    AP_OTHER_INSTANT,
28    AP_BOUNDARY,
29  };
30
31  GoogleSearchMetrics();
32  virtual ~GoogleSearchMetrics();
33
34  // Record a single Google search from source |ap|.
35  virtual void RecordGoogleSearch(AccessPoint ap) const;
36
37#if defined(OS_ANDROID)
38  // Record a single Android Google search from source |ap|. |prerender_enabled|
39  // is set to true when prerendering is enabled via settings.
40  virtual void RecordAndroidGoogleSearch(AccessPoint ap,
41                                         bool prerender_enabled) const;
42#endif
43};
44
45#endif  // COMPONENTS_GOOGLE_CORE_BROWSER_GOOGLE_SEARCH_METRICS_H_
46