Index: base/metrics/field_trial.cc |
diff --git a/base/metrics/field_trial.cc b/base/metrics/field_trial.cc |
index 3b398cd20e793401ee1f73d914b7f5b393fce6da..430cae0b7287d1c3f400ad64afdc272b3a4fd0dc 100644 |
--- a/base/metrics/field_trial.cc |
+++ b/base/metrics/field_trial.cc |
@@ -7,7 +7,6 @@ |
#include <algorithm> |
#include "base/build_time.h" |
-#include "base/lazy_instance.h" |
#include "base/logging.h" |
#include "base/rand_util.h" |
#include "base/strings/string_number_conversions.h" |
@@ -107,38 +106,6 @@ bool ParseFieldTrialsString(const std::string& trials_string, |
return true; |
} |
-void CheckTrialGroup(const std::string& trial_name, |
- const std::string& trial_group, |
- std::map<std::string, std::string>* seen_states) { |
- if (ContainsKey(*seen_states, trial_name)) { |
- CHECK_EQ((*seen_states)[trial_name], trial_group) << trial_name; |
- } else { |
- (*seen_states)[trial_name] = trial_group; |
- } |
-} |
- |
-// A second copy of FieldTrialList::seen_states_ that is meant to outlive the |
-// FieldTrialList object to determine if the inconsistency happens because there |
-// might be multiple FieldTrialList objects. |
-// TODO(asvitkine): Remove when crbug.com/359406 is resolved. |
-base::LazyInstance<std::map<std::string, std::string>>::Leaky g_seen_states = |
- LAZY_INSTANCE_INITIALIZER; |
- |
-// A debug token generated during FieldTrialList construction. Used to diagnose |
-// crbug.com/359406. |
-// TODO(asvitkine): Remove when crbug.com/359406 is resolved. |
-int32_t g_debug_token = -1; |
- |
-// Whether to append the debug token to the child process --force-fieldtrials |
-// command line. Used to diagnose crbug.com/359406. |
-// TODO(asvitkine): Remove when crbug.com/359406 is resolved. |
-bool g_append_debug_token_to_trial_string = false; |
- |
-// Tracks whether |g_seen_states| is used. Defaults to false, because unit tests |
-// will create multiple FieldTrialList instances. Also controls whether |
-// |g_debug_token| is included in the field trial state string. |
-bool g_use_global_check_states = false; |
- |
} // namespace |
// statics |
@@ -242,9 +209,7 @@ void FieldTrial::SetForced() { |
// static |
void FieldTrial::EnableBenchmarking() { |
- // TODO(asvitkine): Change this back to 0u after the trial in FieldTrialList |
- // constructor is removed. |
- DCHECK_EQ(1u, FieldTrialList::GetFieldTrialCount()); |
+ DCHECK_EQ(0u, FieldTrialList::GetFieldTrialCount()); |
enable_benchmarking_ = true; |
} |
@@ -276,9 +241,6 @@ FieldTrial::FieldTrial(const std::string& trial_name, |
DCHECK_GT(total_probability, 0); |
DCHECK(!trial_name_.empty()); |
DCHECK(!default_group_name_.empty()); |
- |
- if (g_debug_token == -1) |
- g_debug_token = RandInt(1, INT32_MAX); |
} |
FieldTrial::~FieldTrial() {} |
@@ -344,8 +306,7 @@ FieldTrialList::FieldTrialList( |
: entropy_provider_(entropy_provider), |
observer_list_(new ObserverListThreadSafe<FieldTrialList::Observer>( |
ObserverListBase<FieldTrialList::Observer>::NOTIFY_EXISTING_ONLY)) { |
- // TODO(asvitkine): Turn into a DCHECK after http://crbug.com/359406 is fixed. |
- CHECK(!global_); |
+ DCHECK(!global_); |
DCHECK(!used_without_global_); |
global_ = this; |
@@ -353,30 +314,6 @@ FieldTrialList::FieldTrialList( |
Time::Exploded exploded; |
two_years_from_build_time.LocalExplode(&exploded); |
kNoExpirationYear = exploded.year; |
- |
- // Run a 50/50 experiment that enables |g_use_global_check_states| only for |
- // half the users, to investigate if this instrumentation is causing the |
- // crashes to disappear for http://crbug.com/359406. Done here instead of a |
- // server-side trial because this needs to be done early during FieldTrialList |
- // initialization. |
- // |
- // Note: |g_use_global_check_states| is set via EnableGlobalStateChecks() |
- // prior to the FieldTrialList being created. We only want to do the trial |
- // check once the first time FieldTrialList is created, so use a static |
- // |first_time| variable to track this. |
- // |
- // TODO(asvitkine): Remove after http://crbug.com/359406 is fixed. |
- static bool first_time = true; |
- if (first_time && g_use_global_check_states) { |
- first_time = false; |
- base::FieldTrial* trial = |
- FactoryGetFieldTrial("UMA_CheckStates", 100, "NoChecks", |
- kNoExpirationYear, 1, 1, |
- FieldTrial::SESSION_RANDOMIZED, nullptr); |
- trial->AppendGroup("Checks", 50); |
- if (trial->group_name() == "NoChecks") |
- g_use_global_check_states = false; |
- } |
} |
FieldTrialList::~FieldTrialList() { |
@@ -391,18 +328,6 @@ FieldTrialList::~FieldTrialList() { |
} |
// static |
-void FieldTrialList::EnableGlobalStateChecks() { |
- CHECK(!g_use_global_check_states); |
- g_use_global_check_states = true; |
- g_append_debug_token_to_trial_string = true; |
-} |
- |
-// static |
-int32_t FieldTrialList::GetDebugToken() { |
- return g_debug_token; |
-} |
- |
-// static |
FieldTrial* FieldTrialList::FactoryGetFieldTrial( |
const std::string& trial_name, |
FieldTrial::Probability total_probability, |
@@ -534,12 +459,6 @@ void FieldTrialList::StatesToString(std::string* output) { |
output->append(it->group_name); |
output->append(1, kPersistentStringSeparator); |
} |
- if (g_append_debug_token_to_trial_string) { |
- output->append("DebugToken"); |
- output->append(1, kPersistentStringSeparator); |
- output->append(IntToString(g_debug_token)); |
- output->append(1, kPersistentStringSeparator); |
- } |
} |
// static |
@@ -562,14 +481,6 @@ void FieldTrialList::AllStatesToString(std::string* output) { |
output->append(1, kPersistentStringSeparator); |
trial.group_name.AppendToString(output); |
output->append(1, kPersistentStringSeparator); |
- |
- // TODO(asvitkine): Remove these when http://crbug.com/359406 is fixed. |
- CheckTrialGroup(trial.trial_name.as_string(), trial.group_name.as_string(), |
- &global_->seen_states_); |
- if (g_use_global_check_states) { |
- CheckTrialGroup(trial.trial_name.as_string(), |
- trial.group_name.as_string(), &g_seen_states.Get()); |
- } |
} |
} |
@@ -694,16 +605,6 @@ void FieldTrialList::NotifyFieldTrialGroupSelection(FieldTrial* field_trial) { |
if (!field_trial->enable_field_trial_) |
return; |
- // TODO(asvitkine): Remove this block when http://crbug.com/359406 is fixed. |
- { |
- AutoLock auto_lock(global_->lock_); |
- CheckTrialGroup(field_trial->trial_name(), |
- field_trial->group_name_internal(), &global_->seen_states_); |
- if (g_use_global_check_states) { |
- CheckTrialGroup(field_trial->trial_name(), |
- field_trial->group_name_internal(), &g_seen_states.Get()); |
- } |
- } |
global_->observer_list_->Notify( |
FROM_HERE, &FieldTrialList::Observer::OnFieldTrialGroupFinalized, |
field_trial->trial_name(), field_trial->group_name_internal()); |