Upstream version 7.35.139.0
[platform/framework/web/crosswalk.git] / src / rlz / lib / lib_values.cc
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 // Key and value names of the location of the RLZ shared state.
6
7 #include "rlz/lib/lib_values.h"
8
9 #include "base/strings/stringprintf.h"
10 #include "rlz/lib/assert.h"
11
12 namespace rlz_lib {
13
14 //
15 // Ping information.
16 //
17
18 // rep=2: includes the new stateful events.
19 const char kProtocolCgiArgument[] = "rep=2";
20
21 const char kEventsCgiVariable[]         = "events";
22 const char kStatefulEventsCgiVariable[] = "stateful-events";
23 const char kEventsCgiSeparator          = ',';
24
25 const char kRlzCgiVariable[]  = "rlz";
26 const char kRlzCgiSeparator[] = ",";
27 const char kRlzCgiIndicator[] = ":";
28
29 const char kProductSignatureCgiVariable[] = "as";
30 const char kProductBrandCgiVariable[]     = "brand";
31 const char kProductLanguageCgiVariable[]  = "hl";
32 const char kProductIdCgiVariable[] = "pid";
33
34 const char kDccCgiVariable[] = "dcc";
35 const char kRlsCgiVariable[] = "rls";
36 const char kMachineIdCgiVariable[] = "id";
37 const char kSetDccResponseVariable[] = "set_dcc";
38
39 //
40 // Financial server information.
41 //
42
43 const char kFinancialPingPath[] = "/tools/pso/ping";
44 const char kFinancialServer[]   = "clients1.google.com";
45 const int kFinancialPort = 80;
46
47 // Ping times in 100-nanosecond intervals.
48 const int64 kEventsPingInterval = 24LL * 3600LL * 10000000LL;  // 1 day
49 const int64 kNoEventsPingInterval = kEventsPingInterval * 7LL;  // 1 week
50
51 const char kFinancialPingUserAgent[] = "Mozilla/4.0 (compatible; Win32)";
52 const char* kFinancialPingResponseObjects[] = { "text/*", NULL };
53
54 //
55 // AccessPoint and Event names.
56 //
57 //
58
59 const char* GetAccessPointName(AccessPoint point) {
60   switch (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.
133   }
134
135   ASSERT_STRING("GetAccessPointName: Unknown Access Point");
136   return NULL;
137 }
138
139
140 bool GetAccessPointFromName(const char* name, AccessPoint* point) {
141   if (!point) {
142     ASSERT_STRING("GetAccessPointFromName: point is NULL");
143     return false;
144   }
145   *point = NO_ACCESS_POINT;
146   if (!name)
147     return false;
148
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);
152       return true;
153     }
154
155   return false;
156 }
157
158
159 const char* GetEventName(Event event) {
160   switch (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.
168   }
169
170   ASSERT_STRING("GetPointName: Unknown Event");
171   return NULL;
172 }
173
174
175 bool GetEventFromName(const char* name, Event* event) {
176   if (!event) {
177     ASSERT_STRING("GetEventFromName: event is NULL");
178     return false;
179   }
180   *event = INVALID_EVENT;
181   if (!name)
182     return false;
183
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);
187       return true;
188     }
189
190   return false;
191 }
192
193 const char* GetProductName(Product product) {
194   switch (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";
205   }
206
207   ASSERT_STRING("GetProductName: Unknown Product");
208   return "";
209 }
210
211 }  // namespace rlz_lib