Chromium Code Reviews| Index: chrome/browser/android/data_usage/external_data_use_observer_bridge.cc |
| diff --git a/chrome/browser/android/data_usage/external_data_use_observer_bridge.cc b/chrome/browser/android/data_usage/external_data_use_observer_bridge.cc |
| index 03b0e7220f4bcc993be5ba5e5e58dda7bbb2e09a..b6e710cf0a65ca84ee2bdb3e798a61fdc2b44e95 100644 |
| --- a/chrome/browser/android/data_usage/external_data_use_observer_bridge.cc |
| +++ b/chrome/browser/android/data_usage/external_data_use_observer_bridge.cc |
| @@ -12,6 +12,7 @@ |
| #include "base/metrics/field_trial.h" |
| #include "base/metrics/histogram_macros.h" |
| #include "base/single_thread_task_runner.h" |
| +#include "base/strings/string_number_conversions.h" |
| #include "base/time/time.h" |
| #include "chrome/browser/android/data_usage/data_use_tab_model.h" |
| #include "chrome/browser/android/data_usage/external_data_use_observer.h" |
| @@ -38,6 +39,21 @@ const std::string GetControlAppPackageName() { |
| "control_app_package_name"); |
| } |
| +// Returns the google variation ID from the field trial. |
| +variations::VariationID GetGoogleVariationID() { |
| + variations::VariationID variation_id; |
| + std::string variation_value = variations::GetVariationParamValue( |
| + chrome::android::ExternalDataUseObserver:: |
| + kExternalDataUseObserverFieldTrial, |
| + "variation_id"); |
| + if (!variation_value.empty() && |
| + static_cast<variations::VariationID>( |
|
sclittle
2016/08/30 20:06:45
nit: this static_cast doesn't really do anything,
Raj
2016/08/30 20:21:09
Done.
|
| + base::StringToInt(variation_value, &variation_id))) { |
| + return variation_id; |
| + } |
| + return variations::EMPTY_ID; |
| +} |
| + |
| } // namespace |
| namespace chrome { |
| @@ -196,17 +212,17 @@ void ExternalDataUseObserverBridge::ShouldRegisterAsDataUseObserver( |
| external_data_use_observer_, should_register)); |
| // Set or clear the variation id for the enabled group. |
| - JNIEnv* env = base::android::AttachCurrentThread(); |
| - variations::AssociateGoogleVariationID( |
| - variations::GOOGLE_WEB_PROPERTIES, kSyntheticFieldTrial, |
| - kSyntheticFieldTrialEnabledGroup, |
| - should_register ? Java_ExternalDataUseObserver_getGoogleVariationID( |
| - env, j_external_data_use_observer_.obj()) |
| - : variations::EMPTY_ID); |
| - ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial( |
| - kSyntheticFieldTrial, should_register |
| - ? kSyntheticFieldTrialEnabledGroup |
| - : kSyntheticFieldTrialDisabledGroup); |
| + variations::VariationID variation_id = GetGoogleVariationID(); |
| + if (variation_id != variations::EMPTY_ID) { |
| + variations::AssociateGoogleVariationID( |
| + variations::GOOGLE_WEB_PROPERTIES, kSyntheticFieldTrial, |
| + kSyntheticFieldTrialEnabledGroup, |
| + should_register ? variation_id : variations::EMPTY_ID); |
|
sclittle
2016/08/30 20:06:45
So if should_register is false, then this sends EM
Raj
2016/08/30 20:21:09
Added comment. Setting EMPTY_ID, is actually clear
|
| + ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial( |
| + kSyntheticFieldTrial, should_register |
| + ? kSyntheticFieldTrialEnabledGroup |
| + : kSyntheticFieldTrialDisabledGroup); |
| + } |
| } |
| bool RegisterExternalDataUseObserver(JNIEnv* env) { |