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 RLZ_LIB_RLZ_ENUMS_H_
6#define RLZ_LIB_RLZ_ENUMS_H_
7
8namespace rlz_lib {
9
10// An Access Point offers a way to search using Google.
11enum AccessPoint {
12  NO_ACCESS_POINT = 0,
13
14  // Access points on Windows PCs.
15  IE_DEFAULT_SEARCH,  // The IE7+ chrome search box next to the address bar.
16  IE_HOME_PAGE,       // Search box on IE 5+ primary home page when Google.
17  IETB_SEARCH_BOX,    // IE Toolbar v4+ search box.
18  QUICK_SEARCH_BOX,   // Search box brought up by ctrl-ctrl key sequence,
19                      // distributed as a part of Google Desktop
20  GD_DESKBAND,        // Search box in deskbar when GD in deskbar mode.
21  GD_SEARCH_GADGET,   // Search gadget when GD in sidebar mode.
22  GD_WEB_SERVER,      // Boxes in web pages shown by local GD web server.
23  GD_OUTLOOK,         // Search box installed within outlook by GD.
24  CHROME_OMNIBOX,     // Chrome searches through the address bar omnibox (Win).
25  CHROME_HOME_PAGE,   // Chrome searches through Google as home page (Win).
26  FFTB2_BOX,          // Firefox Toolbar v2 Search Box.
27  FFTB3_BOX,          // Firefox Toolbar v3+ Search Box.
28  PINYIN_IME_BHO,     // Goopy Input Method Editor BHO (Pinyin).
29  IGOOGLE_WEBPAGE,    // Searches on iGoogle through partner deals.
30
31  // Mobile idle screen search for different platforms.
32  MOBILE_IDLE_SCREEN_BLACKBERRY,
33  MOBILE_IDLE_SCREEN_WINMOB,
34  MOBILE_IDLE_SCREEN_SYMBIAN,
35
36  FF_HOME_PAGE,       // Firefox home page when set to Google.
37  FF_SEARCH_BOX,      // Firefox search box when set to Google.
38  IE_BROWSED_PAGE,    // Search made in IE through user action (no product).
39  QSB_WIN_BOX,        // Search box brought up by ctrl+space by default,
40                      // distributed by toolbar and separate from the GD QSB
41  WEBAPPS_CALENDAR,   // Webapps use of calendar.
42  WEBAPPS_DOCS,       // Webapps use of writely.
43  WEBAPPS_GMAIL,      // Webapps use of Gmail.
44
45  IETB_LINKDOCTOR,    // Linkdoctor of IE Toolbar
46  FFTB_LINKDOCTOR,    // Linkdoctor of FF Toolbar
47  IETB7_SEARCH_BOX,   // IE Toolbar search box.
48  TB8_SEARCH_BOX,     // IE/FF Toolbar search box.
49  CHROME_FRAME,       // Chrome Frame.
50
51  // Partner access points.
52  PARTNER_AP_1,
53  PARTNER_AP_2,
54  PARTNER_AP_3,
55  PARTNER_AP_4,
56  PARTNER_AP_5,
57
58  CHROME_MAC_OMNIBOX,  // Chrome searches through the address bar omnibox (Mac).
59  CHROME_MAC_HOME_PAGE,// Chrome searches through Google as home page (Mac).
60
61  CHROMEOS_OMNIBOX,    // ChromeOS searches through the address bar omnibox.
62  CHROMEOS_HOME_PAGE,  // ChromeOS searches through Google as home page.
63  CHROMEOS_APP_LIST,   // ChromeOS searches through the app launcher search box.
64
65  // Chrome searches through the address bar omnibox (iOS) on tablet or phone.
66  CHROME_IOS_OMNIBOX_TABLET,
67  CHROME_IOS_OMNIBOX_MOBILE,
68
69  CHROME_APP_LIST,     // Chrome searches through the app launcher search box.
70  CHROME_MAC_APP_LIST, // Chrome searches through the app launcher search box
71                       // (Mac).
72
73  // Unclaimed access points - should be used first before creating new APs.
74  // Please also make sure you re-name the enum before using an unclaimed value;
75  // this acts as a check to ensure we don't have collisions.
76  UNDEFINED_AP_Q,
77  UNDEFINED_AP_R,
78  UNDEFINED_AP_S,
79  UNDEFINED_AP_T,
80  UNDEFINED_AP_U,
81  UNDEFINED_AP_V,
82  UNDEFINED_AP_W,
83  UNDEFINED_AP_X,
84  UNDEFINED_AP_Y,
85  UNDEFINED_AP_Z,
86
87  PACK_AP0,
88  PACK_AP1,
89  PACK_AP2,
90  PACK_AP3,
91  PACK_AP4,
92  PACK_AP5,
93  PACK_AP6,
94  PACK_AP7,
95  PACK_AP8,
96  PACK_AP9,
97  PACK_AP10,
98  PACK_AP11,
99  PACK_AP12,
100  PACK_AP13,
101
102  // New Access Points should be added here without changing existing enums,
103  // (i.e. before LAST_ACCESS_POINT)
104  LAST_ACCESS_POINT
105};
106
107// A product is an entity which wants to gets credit for setting
108// an Access Point.
109enum Product {
110  IE_TOOLBAR = 1,
111  TOOLBAR_NOTIFIER,
112  PACK,
113  DESKTOP,
114  CHROME,
115  FF_TOOLBAR,
116  QSB_WIN,
117  WEBAPPS,
118  PINYIN_IME,
119  PARTNER
120  // New Products should be added here without changing existing enums.
121};
122
123// Events that note Product and Access Point modifications.
124enum Event {
125  INVALID_EVENT = 0,
126  INSTALL = 1,    // Access Point added to the system.
127  SET_TO_GOOGLE,  // Point set from non-Google provider to Google.
128  FIRST_SEARCH,   // First search from point since INSTALL
129  REPORT_RLS,     // Report old system "RLS" financial value for this point.
130  // New Events should be added here without changing existing enums,
131  // before LAST_EVENT.
132  ACTIVATE,       // Product being used for a period of time.
133  LAST_EVENT
134};
135
136}  // namespace rlz_lib
137
138#endif  // RLZ_LIB_RLZ_ENUMS_H_
139