Index: chrome/browser/rlz/rlz.cc |
=================================================================== |
--- chrome/browser/rlz/rlz.cc (revision 111916) |
+++ chrome/browser/rlz/rlz.cc (working copy) |
@@ -40,6 +40,10 @@ |
namespace { |
+bool IsBrandOrganic(const std::string& brand) { |
+ return brand.empty() || google_util::IsOrganic(brand); |
+} |
+ |
void RecordProductEvents(bool first_run, bool google_default_search, |
bool google_default_homepage, bool already_ran, |
bool omnibox_used, bool homepage_used) { |
@@ -106,21 +110,6 @@ |
rlz_lib::NO_ACCESS_POINT}; |
std::string lang_ascii(WideToASCII(lang)); |
std::string referral_ascii(WideToASCII(referral)); |
- |
- // If chrome has been reactivated, send a ping for this brand as well. |
- // We ignore the return value of SendFinancialPing() since we'll try again |
- // later anyway. Callers of this function are only interested in whether |
- // the ping for the main brand succeeded or not. |
- std::string reactivation_brand; |
- if (google_util::GetReactivationBrand(&reactivation_brand)) { |
- string16 reactivation_brand16 = UTF8ToUTF16(reactivation_brand); |
- rlz_lib::SupplementaryBranding branding(reactivation_brand16.c_str()); |
- rlz_lib::SendFinancialPing(rlz_lib::CHROME, points, "chrome", |
- reactivation_brand.c_str(), |
- referral_ascii.c_str(), lang_ascii.c_str(), |
- false, NULL, true); |
- } |
- |
return rlz_lib::SendFinancialPing(rlz_lib::CHROME, points, "chrome", |
brand.c_str(), referral_ascii.c_str(), |
lang_ascii.c_str(), false, NULL, true); |
@@ -209,31 +198,35 @@ |
} |
void RLZTracker::DelayedInit() { |
+ bool schedule_ping = false; |
+ |
// For organic brandcodes do not use rlz at all. Empty brandcode usually |
// means a chromium install. This is ok. |
std::string brand; |
- if (!google_util::GetBrand(&brand) || brand.empty() || |
- google_util::IsOrganic(brand)) |
- return; |
+ if (google_util::GetBrand(&brand) && !IsBrandOrganic(brand)) { |
+ RecordProductEvents(first_run_, google_default_search_, |
+ google_default_homepage_, already_ran_, |
+ omnibox_used_, homepage_used_); |
+ schedule_ping = true; |
+ } |
- RecordProductEvents(first_run_, google_default_search_, |
- google_default_homepage_, already_ran_, |
- omnibox_used_, homepage_used_); |
- |
// If chrome has been reactivated, record the events for this brand |
// as well. |
std::string reactivation_brand; |
- if (google_util::GetReactivationBrand(&reactivation_brand)) { |
+ if (google_util::GetReactivationBrand(&reactivation_brand) && |
+ !IsBrandOrganic(reactivation_brand)) { |
string16 reactivation_brand16 = UTF8ToUTF16(reactivation_brand); |
rlz_lib::SupplementaryBranding branding(reactivation_brand16.c_str()); |
RecordProductEvents(first_run_, google_default_search_, |
google_default_homepage_, already_ran_, |
omnibox_used_, homepage_used_); |
+ schedule_ping = true; |
} |
already_ran_ = true; |
- ScheduleFinancialPing(); |
+ if (schedule_ping) |
+ ScheduleFinancialPing(); |
} |
void RLZTracker::ScheduleFinancialPing() { |
@@ -254,11 +247,12 @@ |
GoogleUpdateSettings::GetLanguage(&lang); |
if (lang.empty()) |
lang = L"en"; |
- std::string brand; |
- google_util::GetBrand(&brand); |
string16 referral; |
GoogleUpdateSettings::GetReferral(&referral); |
- if (SendFinancialPing(brand, lang, referral)) { |
+ |
+ std::string brand; |
+ if (google_util::GetBrand(&brand) && !IsBrandOrganic(brand) && |
+ SendFinancialPing(brand, lang, referral)) { |
GoogleUpdateSettings::ClearReferral(); |
{ |
@@ -270,6 +264,14 @@ |
GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, NULL); |
GetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, NULL); |
} |
+ |
+ std::string reactivation_brand; |
+ if (google_util::GetReactivationBrand(&reactivation_brand) && |
+ !IsBrandOrganic(reactivation_brand)) { |
+ string16 reactivation_brand16 = UTF8ToUTF16(reactivation_brand); |
+ rlz_lib::SupplementaryBranding branding(reactivation_brand16.c_str()); |
+ SendFinancialPing(reactivation_brand, lang, referral); |
+ } |
} |
bool RLZTracker::SendFinancialPing(const std::string& brand, |