| Index: components/variations/variations_associated_data.cc
|
| diff --git a/components/variations/variations_associated_data.cc b/components/variations/variations_associated_data.cc
|
| index d257d01999f0619e18ee76ff39a294e4b166bd1a..f9e77849fa09b9d90fd593ea1132c862c6b62887 100644
|
| --- a/components/variations/variations_associated_data.cc
|
| +++ b/components/variations/variations_associated_data.cc
|
| @@ -11,6 +11,7 @@
|
| #include "base/feature_list.h"
|
| #include "base/macros.h"
|
| #include "base/memory/singleton.h"
|
| +#include "base/metrics/field_trial_param_associator.h"
|
| #include "base/strings/string_split.h"
|
| #include "components/variations/variations_http_header_provider.h"
|
|
|
| @@ -104,68 +105,6 @@ class GroupMapAccessor {
|
|
|
| DISALLOW_COPY_AND_ASSIGN(GroupMapAccessor);
|
| };
|
| -
|
| -// Singleton helper class that keeps track of the parameters of all variations
|
| -// and ensures access to these is thread-safe.
|
| -class VariationsParamAssociator {
|
| - public:
|
| - typedef std::pair<std::string, std::string> VariationKey;
|
| - typedef std::map<std::string, std::string> VariationParams;
|
| -
|
| - // Retrieve the singleton.
|
| - static VariationsParamAssociator* GetInstance() {
|
| - return base::Singleton<
|
| - VariationsParamAssociator,
|
| - base::LeakySingletonTraits<VariationsParamAssociator>>::get();
|
| - }
|
| -
|
| - bool AssociateVariationParams(const std::string& trial_name,
|
| - const std::string& group_name,
|
| - const VariationParams& params) {
|
| - base::AutoLock scoped_lock(lock_);
|
| -
|
| - if (base::FieldTrialList::IsTrialActive(trial_name))
|
| - return false;
|
| -
|
| - const VariationKey key(trial_name, group_name);
|
| - if (base::ContainsKey(variation_params_, key))
|
| - return false;
|
| -
|
| - variation_params_[key] = params;
|
| - return true;
|
| - }
|
| -
|
| - bool GetVariationParams(const std::string& trial_name,
|
| - VariationParams* params) {
|
| - base::AutoLock scoped_lock(lock_);
|
| -
|
| - const std::string group_name =
|
| - base::FieldTrialList::FindFullName(trial_name);
|
| - const VariationKey key(trial_name, group_name);
|
| - if (!base::ContainsKey(variation_params_, key))
|
| - return false;
|
| -
|
| - *params = variation_params_[key];
|
| - return true;
|
| - }
|
| -
|
| - void ClearAllParamsForTesting() {
|
| - base::AutoLock scoped_lock(lock_);
|
| - variation_params_.clear();
|
| - }
|
| -
|
| - private:
|
| - friend struct base::DefaultSingletonTraits<VariationsParamAssociator>;
|
| -
|
| - VariationsParamAssociator() {}
|
| - ~VariationsParamAssociator() {}
|
| -
|
| - base::Lock lock_;
|
| - std::map<VariationKey, VariationParams> variation_params_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(VariationsParamAssociator);
|
| -};
|
| -
|
| } // namespace
|
|
|
| void AssociateGoogleVariationID(IDCollectionKey key,
|
| @@ -207,13 +146,13 @@ bool AssociateVariationParams(
|
| const std::string& trial_name,
|
| const std::string& group_name,
|
| const std::map<std::string, std::string>& params) {
|
| - return VariationsParamAssociator::GetInstance()->AssociateVariationParams(
|
| - trial_name, group_name, params);
|
| + return base::FieldTrialParamAssociator::GetInstance()
|
| + ->AssociateFieldTrialParams(trial_name, group_name, params);
|
| }
|
|
|
| bool GetVariationParams(const std::string& trial_name,
|
| std::map<std::string, std::string>* params) {
|
| - return VariationsParamAssociator::GetInstance()->GetVariationParams(
|
| + return base::FieldTrialParamAssociator::GetInstance()->GetFieldTrialParams(
|
| trial_name, params);
|
| }
|
|
|
| @@ -281,7 +220,7 @@ void ClearAllVariationIDs() {
|
| }
|
|
|
| void ClearAllVariationParams() {
|
| - VariationsParamAssociator::GetInstance()->ClearAllParamsForTesting();
|
| + base::FieldTrialParamAssociator::GetInstance()->ClearAllParamsForTesting();
|
| }
|
|
|
| } // namespace testing
|
|
|