diff options
Diffstat (limited to 'rlz/lib/lib_values.cc')
-rw-r--r-- | rlz/lib/lib_values.cc | 208 |
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 |