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.
5 // Key and value names of the location of the RLZ shared state.
7 #include "rlz/lib/lib_values.h"
9 #include "base/strings/stringprintf.h"
10 #include "rlz/lib/assert.h"
18 // rep=2: includes the new stateful events.
19 const char kProtocolCgiArgument[] = "rep=2";
21 const char kEventsCgiVariable[] = "events";
22 const char kStatefulEventsCgiVariable[] = "stateful-events";
23 const char kEventsCgiSeparator = ',';
25 const char kRlzCgiVariable[] = "rlz";
26 const char kRlzCgiSeparator[] = ",";
27 const char kRlzCgiIndicator[] = ":";
29 const char kProductSignatureCgiVariable[] = "as";
30 const char kProductBrandCgiVariable[] = "brand";
31 const char kProductLanguageCgiVariable[] = "hl";
32 const char kProductIdCgiVariable[] = "pid";
34 const char kDccCgiVariable[] = "dcc";
35 const char kRlsCgiVariable[] = "rls";
36 const char kMachineIdCgiVariable[] = "id";
37 const char kSetDccResponseVariable[] = "set_dcc";
40 // Financial server information.
43 const char kFinancialPingPath[] = "/tools/pso/ping";
44 const char kFinancialServer[] = "clients1.google.com";
45 const int kFinancialPort = 80;
47 // Ping times in 100-nanosecond intervals.
48 const int64 kEventsPingInterval = 24LL * 3600LL * 10000000LL; // 1 day
49 const int64 kNoEventsPingInterval = kEventsPingInterval * 7LL; // 1 week
51 const char kFinancialPingUserAgent[] = "Mozilla/4.0 (compatible; Win32)";
52 const char* kFinancialPingResponseObjects[] = { "text/*", NULL };
55 // AccessPoint and Event names.
59 const char* GetAccessPointName(AccessPoint point) {
61 case NO_ACCESS_POINT: return "";
62 case IE_DEFAULT_SEARCH: return "I7";
63 case IE_HOME_PAGE: return "W1";
64 case IETB_SEARCH_BOX: return "T4";
65 case QUICK_SEARCH_BOX: return "Q1";
66 case GD_DESKBAND: return "D1";
67 case GD_SEARCH_GADGET: return "D2";
68 case GD_WEB_SERVER: return "D3";
69 case GD_OUTLOOK: return "D4";
70 case CHROME_OMNIBOX: return "C1";
71 case CHROME_HOME_PAGE: return "C2";
72 case FFTB2_BOX: return "B2";
73 case FFTB3_BOX: return "B3";
74 case PINYIN_IME_BHO: return "N1";
75 case IGOOGLE_WEBPAGE: return "G1";
76 case MOBILE_IDLE_SCREEN_BLACKBERRY: return "H1";
77 case MOBILE_IDLE_SCREEN_WINMOB: return "H2";
78 case MOBILE_IDLE_SCREEN_SYMBIAN: return "H3";
79 case FF_HOME_PAGE: return "R0";
80 case FF_SEARCH_BOX: return "R1";
81 case IE_BROWSED_PAGE: return "R2";
82 case QSB_WIN_BOX: return "R3";
83 case WEBAPPS_CALENDAR: return "R4";
84 case WEBAPPS_DOCS: return "R5";
85 case WEBAPPS_GMAIL: return "R6";
86 case IETB_LINKDOCTOR: return "R7";
87 case FFTB_LINKDOCTOR: return "R8";
88 case IETB7_SEARCH_BOX: return "T7";
89 case TB8_SEARCH_BOX: return "T8";
90 case CHROME_FRAME: return "C3";
91 case PARTNER_AP_1: return "V1";
92 case PARTNER_AP_2: return "V2";
93 case PARTNER_AP_3: return "V3";
94 case PARTNER_AP_4: return "V4";
95 case PARTNER_AP_5: return "V5";
96 case CHROME_MAC_OMNIBOX: return "C5";
97 case CHROME_MAC_HOME_PAGE: return "C6";
98 case CHROMEOS_OMNIBOX: return "CA";
99 case CHROMEOS_HOME_PAGE: return "CB";
100 case CHROMEOS_RESERVED: return "CC";
101 case CHROME_IOS_OMNIBOX: return "C9";
102 // Returns an invalid access point value here as this value does not
103 // correspond to a defined access point, but need to be defined for
104 // code that iterates over all values of rlz_lib::AccessPoint.
105 case CHROME_IOS_RESERVED: return "__";
106 case UNDEFINED_AP_O: return "RO";
107 case UNDEFINED_AP_P: return "RP";
108 case UNDEFINED_AP_Q: return "RQ";
109 case UNDEFINED_AP_R: return "RR";
110 case UNDEFINED_AP_S: return "RS";
111 case UNDEFINED_AP_T: return "RT";
112 case UNDEFINED_AP_U: return "RU";
113 case UNDEFINED_AP_V: return "RV";
114 case UNDEFINED_AP_W: return "RW";
115 case UNDEFINED_AP_X: return "RX";
116 case UNDEFINED_AP_Y: return "RY";
117 case UNDEFINED_AP_Z: return "RZ";
118 case PACK_AP0: return "U0";
119 case PACK_AP1: return "U1";
120 case PACK_AP2: return "U2";
121 case PACK_AP3: return "U3";
122 case PACK_AP4: return "U4";
123 case PACK_AP5: return "U5";
124 case PACK_AP6: return "U6";
125 case PACK_AP7: return "U7";
126 case PACK_AP8: return "U8";
127 case PACK_AP9: return "U9";
128 case PACK_AP10: return "UA";
129 case PACK_AP11: return "UB";
130 case PACK_AP12: return "UC";
131 case PACK_AP13: return "UD";
132 case LAST_ACCESS_POINT: ; // Fall through.
135 ASSERT_STRING("GetAccessPointName: Unknown Access Point");
140 bool GetAccessPointFromName(const char* name, AccessPoint* point) {
142 ASSERT_STRING("GetAccessPointFromName: point is NULL");
145 *point = NO_ACCESS_POINT;
149 for (int i = NO_ACCESS_POINT; i < LAST_ACCESS_POINT; i++)
150 if (strcmp(name, GetAccessPointName(static_cast<AccessPoint>(i))) == 0) {
151 *point = static_cast<AccessPoint>(i);
159 const char* GetEventName(Event event) {
161 case INVALID_EVENT: return "";
162 case INSTALL: return "I";
163 case SET_TO_GOOGLE: return "S";
164 case FIRST_SEARCH: return "F";
165 case REPORT_RLS: return "R";
166 case ACTIVATE: return "A";
167 case LAST_EVENT: ; // Fall through.
170 ASSERT_STRING("GetPointName: Unknown Event");
175 bool GetEventFromName(const char* name, Event* event) {
177 ASSERT_STRING("GetEventFromName: event is NULL");
180 *event = INVALID_EVENT;
184 for (int i = INVALID_EVENT; i < LAST_EVENT; i++)
185 if (strcmp(name, GetEventName(static_cast<Event>(i))) == 0) {
186 *event = static_cast<Event>(i);
193 const char* GetProductName(Product product) {
195 case IE_TOOLBAR: return "T";
196 case TOOLBAR_NOTIFIER: return "P";
197 case PACK: return "U";
198 case DESKTOP: return "D";
199 case CHROME: return "C";
200 case FF_TOOLBAR: return "B";
201 case QSB_WIN: return "K";
202 case WEBAPPS: return "W";
203 case PINYIN_IME: return "N";
204 case PARTNER: return "V";
207 ASSERT_STRING("GetProductName: Unknown Product");
211 } // namespace rlz_lib