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_APP_LIST
: return "CC";
101 case CHROME_IOS_OMNIBOX_TABLET
: return "C9";
102 case CHROME_IOS_OMNIBOX_MOBILE
: return "CD";
103 case CHROME_APP_LIST
: return "C7";
104 case CHROME_MAC_APP_LIST
: return "C8";
105 case UNDEFINED_AP_Q
: return "RQ";
106 case UNDEFINED_AP_R
: return "RR";
107 case UNDEFINED_AP_S
: return "RS";
108 case UNDEFINED_AP_T
: return "RT";
109 case UNDEFINED_AP_U
: return "RU";
110 case UNDEFINED_AP_V
: return "RV";
111 case UNDEFINED_AP_W
: return "RW";
112 case UNDEFINED_AP_X
: return "RX";
113 case UNDEFINED_AP_Y
: return "RY";
114 case UNDEFINED_AP_Z
: return "RZ";
115 case PACK_AP0
: return "U0";
116 case PACK_AP1
: return "U1";
117 case PACK_AP2
: return "U2";
118 case PACK_AP3
: return "U3";
119 case PACK_AP4
: return "U4";
120 case PACK_AP5
: return "U5";
121 case PACK_AP6
: return "U6";
122 case PACK_AP7
: return "U7";
123 case PACK_AP8
: return "U8";
124 case PACK_AP9
: return "U9";
125 case PACK_AP10
: return "UA";
126 case PACK_AP11
: return "UB";
127 case PACK_AP12
: return "UC";
128 case PACK_AP13
: return "UD";
129 case LAST_ACCESS_POINT
: ; // Fall through.
132 ASSERT_STRING("GetAccessPointName: Unknown Access Point");
137 bool GetAccessPointFromName(const char* name
, AccessPoint
* point
) {
139 ASSERT_STRING("GetAccessPointFromName: point is NULL");
142 *point
= NO_ACCESS_POINT
;
146 for (int i
= NO_ACCESS_POINT
; i
< LAST_ACCESS_POINT
; i
++)
147 if (strcmp(name
, GetAccessPointName(static_cast<AccessPoint
>(i
))) == 0) {
148 *point
= static_cast<AccessPoint
>(i
);
156 const char* GetEventName(Event event
) {
158 case INVALID_EVENT
: return "";
159 case INSTALL
: return "I";
160 case SET_TO_GOOGLE
: return "S";
161 case FIRST_SEARCH
: return "F";
162 case REPORT_RLS
: return "R";
163 case ACTIVATE
: return "A";
164 case LAST_EVENT
: ; // Fall through.
167 ASSERT_STRING("GetPointName: Unknown Event");
172 bool GetEventFromName(const char* name
, Event
* event
) {
174 ASSERT_STRING("GetEventFromName: event is NULL");
177 *event
= INVALID_EVENT
;
181 for (int i
= INVALID_EVENT
; i
< LAST_EVENT
; i
++)
182 if (strcmp(name
, GetEventName(static_cast<Event
>(i
))) == 0) {
183 *event
= static_cast<Event
>(i
);
190 const char* GetProductName(Product product
) {
192 case IE_TOOLBAR
: return "T";
193 case TOOLBAR_NOTIFIER
: return "P";
194 case PACK
: return "U";
195 case DESKTOP
: return "D";
196 case CHROME
: return "C";
197 case FF_TOOLBAR
: return "B";
198 case QSB_WIN
: return "K";
199 case WEBAPPS
: return "W";
200 case PINYIN_IME
: return "N";
201 case PARTNER
: return "V";
204 ASSERT_STRING("GetProductName: Unknown Product");
208 } // namespace rlz_lib