summaryrefslogtreecommitdiffstats
path: root/rlz/lib/lib_values.cc
diff options
context:
space:
mode:
Diffstat (limited to 'rlz/lib/lib_values.cc')
-rw-r--r--rlz/lib/lib_values.cc208
1 files changed, 208 insertions, 0 deletions
diff --git a/rlz/lib/lib_values.cc b/rlz/lib/lib_values.cc
new file mode 100644
index 0000000..467e4568
--- /dev/null
+++ b/rlz/lib/lib_values.cc
@@ -0,0 +1,208 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Key and value names of the location of the RLZ shared state.
+
+#include "rlz/lib/lib_values.h"
+
+#include "base/stringprintf.h"
+#include "rlz/lib/assert.h"
+
+namespace rlz_lib {
+
+//
+// Ping information.
+//
+
+// rep=2: includes the new stateful events.
+const char kProtocolCgiArgument[] = "rep=2";
+
+const char kEventsCgiVariable[] = "events";
+const char kStatefulEventsCgiVariable[] = "stateful-events";
+const char kEventsCgiSeparator = ',';
+
+const char kRlzCgiVariable[] = "rlz";
+const char kRlzCgiSeparator[] = ",";
+const char kRlzCgiIndicator[] = ":";
+
+const char kProductSignatureCgiVariable[] = "as";
+const char kProductBrandCgiVariable[] = "brand";
+const char kProductLanguageCgiVariable[] = "hl";
+const char kProductIdCgiVariable[] = "pid";
+
+const char kDccCgiVariable[] = "dcc";
+const char kRlsCgiVariable[] = "rls";
+const char kMachineIdCgiVariable[] = "id";
+const char kSetDccResponseVariable[] = "set_dcc";
+
+//
+// Financial server information.
+//
+
+const char kFinancialPingPath[] = "/tools/pso/ping";
+const char kFinancialServer[] = "clients1.google.com";
+const int kFinancialPort = 80;
+
+// Ping times in 100-nanosecond intervals.
+const int64 kEventsPingInterval = 24LL * 3600LL * 10000000LL; // 1 day
+const int64 kNoEventsPingInterval = kEventsPingInterval * 7LL; // 1 week
+
+const char kFinancialPingUserAgent[] = "Mozilla/4.0 (compatible; Win32)";
+const char* kFinancialPingResponseObjects[] = { "text/*", NULL };
+
+//
+// AccessPoint and Event names.
+//
+//
+
+const char* GetAccessPointName(AccessPoint point) {
+ switch (point) {
+ case NO_ACCESS_POINT: return "";
+ case IE_DEFAULT_SEARCH: return "I7";
+ case IE_HOME_PAGE: return "W1";
+ case IETB_SEARCH_BOX: return "T4";
+ case QUICK_SEARCH_BOX: return "Q1";
+ case GD_DESKBAND: return "D1";
+ case GD_SEARCH_GADGET: return "D2";
+ case GD_WEB_SERVER: return "D3";
+ case GD_OUTLOOK: return "D4";
+ case CHROME_OMNIBOX: return "C1";
+ case CHROME_HOME_PAGE: return "C2";
+ case FFTB2_BOX: return "B2";
+ case FFTB3_BOX: return "B3";
+ case PINYIN_IME_BHO: return "N1";
+ case IGOOGLE_WEBPAGE: return "G1";
+ case MOBILE_IDLE_SCREEN_BLACKBERRY: return "H1";
+ case MOBILE_IDLE_SCREEN_WINMOB: return "H2";
+ case MOBILE_IDLE_SCREEN_SYMBIAN: return "H3";
+ case FF_HOME_PAGE: return "R0";
+ case FF_SEARCH_BOX: return "R1";
+ case IE_BROWSED_PAGE: return "R2";
+ case QSB_WIN_BOX: return "R3";
+ case WEBAPPS_CALENDAR: return "R4";
+ case WEBAPPS_DOCS: return "R5";
+ case WEBAPPS_GMAIL: return "R6";
+ case IETB_LINKDOCTOR: return "R7";
+ case FFTB_LINKDOCTOR: return "R8";
+ case IETB7_SEARCH_BOX: return "T7";
+ case TB8_SEARCH_BOX: return "T8";
+ case CHROME_FRAME: return "C3";
+ case PARTNER_AP_1: return "V1";
+ case PARTNER_AP_2: return "V2";
+ case PARTNER_AP_3: return "V3";
+ case PARTNER_AP_4: return "V4";
+ case PARTNER_AP_5: return "V5";
+ case UNDEFINED_AP_H: return "RH";
+ case UNDEFINED_AP_I: return "RI";
+ case UNDEFINED_AP_J: return "RJ";
+ case UNDEFINED_AP_K: return "RK";
+ case UNDEFINED_AP_L: return "RL";
+ case UNDEFINED_AP_M: return "RM";
+ case UNDEFINED_AP_N: return "RN";
+ case UNDEFINED_AP_O: return "RO";
+ case UNDEFINED_AP_P: return "RP";
+ case UNDEFINED_AP_Q: return "RQ";
+ case UNDEFINED_AP_R: return "RR";
+ case UNDEFINED_AP_S: return "RS";
+ case UNDEFINED_AP_T: return "RT";
+ case UNDEFINED_AP_U: return "RU";
+ case UNDEFINED_AP_V: return "RV";
+ case UNDEFINED_AP_W: return "RW";
+ case UNDEFINED_AP_X: return "RX";
+ case UNDEFINED_AP_Y: return "RY";
+ case UNDEFINED_AP_Z: return "RZ";
+ case PACK_AP0: return "U0";
+ case PACK_AP1: return "U1";
+ case PACK_AP2: return "U2";
+ case PACK_AP3: return "U3";
+ case PACK_AP4: return "U4";
+ case PACK_AP5: return "U5";
+ case PACK_AP6: return "U6";
+ case PACK_AP7: return "U7";
+ case PACK_AP8: return "U8";
+ case PACK_AP9: return "U9";
+ case PACK_AP10: return "UA";
+ case PACK_AP11: return "UB";
+ case PACK_AP12: return "UC";
+ case PACK_AP13: return "UD";
+ case LAST_ACCESS_POINT: ; // Fall through.
+ }
+
+ ASSERT_STRING("GetAccessPointName: Unknown Access Point");
+ return NULL;
+}
+
+
+bool GetAccessPointFromName(const char* name, AccessPoint* point) {
+ if (!point) {
+ ASSERT_STRING("GetAccessPointFromName: point is NULL");
+ return false;
+ }
+ *point = NO_ACCESS_POINT;
+ if (!name)
+ return false;
+
+ for (int i = NO_ACCESS_POINT; i < LAST_ACCESS_POINT; i++)
+ if (strcmp(name, GetAccessPointName(static_cast<AccessPoint>(i))) == 0) {
+ *point = static_cast<AccessPoint>(i);
+ return true;
+ }
+
+ return false;
+}
+
+
+const char* GetEventName(Event event) {
+ switch (event) {
+ case INVALID_EVENT: return "";
+ case INSTALL: return "I";
+ case SET_TO_GOOGLE: return "S";
+ case FIRST_SEARCH: return "F";
+ case REPORT_RLS: return "R";
+ case ACTIVATE: return "A";
+ case LAST_EVENT: ; // Fall through.
+ }
+
+ ASSERT_STRING("GetPointName: Unknown Event");
+ return NULL;
+}
+
+
+bool GetEventFromName(const char* name, Event* event) {
+ if (!event) {
+ ASSERT_STRING("GetEventFromName: event is NULL");
+ return false;
+ }
+ *event = INVALID_EVENT;
+ if (!name)
+ return false;
+
+ for (int i = INVALID_EVENT; i < LAST_EVENT; i++)
+ if (strcmp(name, GetEventName(static_cast<Event>(i))) == 0) {
+ *event = static_cast<Event>(i);
+ return true;
+ }
+
+ return false;
+}
+
+const char* GetProductName(Product product) {
+ switch (product) {
+ case IE_TOOLBAR: return "T";
+ case TOOLBAR_NOTIFIER: return "P";
+ case PACK: return "U";
+ case DESKTOP: return "D";
+ case CHROME: return "C";
+ case FF_TOOLBAR: return "B";
+ case QSB_WIN: return "K";
+ case WEBAPPS: return "W";
+ case PINYIN_IME: return "N";
+ case PARTNER: return "V";
+ }
+
+ ASSERT_STRING("GetProductName: Unknown Product");
+ return "";
+}
+
+} // namespace rlz_lib