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