• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
13 class 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