diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-08-01 12:59:39 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2016-08-04 12:40:43 +0000 |
commit | 28b1110370900897ab652cb420c371fab8857ad4 (patch) | |
tree | 41b32127d23b0df4f2add2a27e12dc87bddb260e /chromium/components/variations | |
parent | 399c965b6064c440ddcf4015f5f8e9d131c7a0a6 (diff) | |
download | qtwebengine-chromium-28b1110370900897ab652cb420c371fab8857ad4.tar.gz |
BASELINE: Update Chromium to 53.0.2785.41
Also adds a few extra files for extensions.
Change-Id: Iccdd55d98660903331cf8b7b29188da781830af4
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/components/variations')
3 files changed, 27 insertions, 1 deletions
diff --git a/chromium/components/variations/variations_http_header_provider.cc b/chromium/components/variations/variations_http_header_provider.cc index 2739aef04f1..d77a4bf8e3d 100644 --- a/chromium/components/variations/variations_http_header_provider.cc +++ b/chromium/components/variations/variations_http_header_provider.cc @@ -16,6 +16,7 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" +#include "base/threading/thread_task_runner_handle.h" #include "components/variations/proto/client_variations.pb.h" namespace variations { @@ -139,7 +140,7 @@ void VariationsHttpHeaderProvider::InitVariationIDsCacheIfNeeded() { // Register for additional cache updates. This is done first to avoid a race // that could cause registered FieldTrials to be missed. - DCHECK(base::MessageLoop::current()); + DCHECK(base::ThreadTaskRunnerHandle::IsSet()); base::FieldTrialList::AddObserver(this); base::TimeTicks before_time = base::TimeTicks::Now(); diff --git a/chromium/components/variations/variations_seed_processor.cc b/chromium/components/variations/variations_seed_processor.cc index fb4d7e56700..b152ddb302c 100644 --- a/chromium/components/variations/variations_seed_processor.cc +++ b/chromium/components/variations/variations_seed_processor.cc @@ -221,6 +221,16 @@ void VariationsSeedProcessor::CreateTrialFromStudy( base::FeatureList* feature_list) { const Study& study = *processed_study.study(); + // If the trial already exists, check if the selected group exists in the + // |processed_study|. If not, there is nothing to do here. + base::FieldTrial* existing_trial = base::FieldTrialList::Find(study.name()); + if (existing_trial) { + int experiment_index = processed_study.GetExperimentIndexByName( + existing_trial->GetGroupNameWithoutActivation()); + if (experiment_index == -1) + return; + } + // Check if any experiments need to be forced due to a command line // flag. Force the first experiment with an existing flag. base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); diff --git a/chromium/components/variations/variations_seed_processor_unittest.cc b/chromium/components/variations/variations_seed_processor_unittest.cc index d6207ff3288..1ab8a497a38 100644 --- a/chromium/components/variations/variations_seed_processor_unittest.cc +++ b/chromium/components/variations/variations_seed_processor_unittest.cc @@ -40,6 +40,7 @@ const char kFlagStudyName[] = "flag_test_trial"; const char kFlagGroup1Name[] = "flag_group1"; const char kFlagGroup2Name[] = "flag_group2"; const char kNonFlagGroupName[] = "non_flag_group"; +const char kOtherGroupName[] = "other_group"; const char kForcingFlag1[] = "flag_test1"; const char kForcingFlag2[] = "flag_test2"; @@ -227,6 +228,20 @@ TEST_F(VariationsSeedProcessorTest, ForceGroup_DontChooseGroupWithFlag) { base::FieldTrialList::FindFullName(kFlagStudyName)); } +TEST_F(VariationsSeedProcessorTest, CreateTrialForRegisteredGroup) { + base::FieldTrialList field_trial_list(nullptr); + + base::FieldTrialList::CreateFieldTrial(kFlagStudyName, kOtherGroupName); + + // Create an arbitrary study that does not have group named |kOtherGroupName|. + Study study = CreateStudyWithFlagGroups(100, 0, 0); + // Creating the trial should not crash. + EXPECT_TRUE(CreateTrialFromStudy(study)); + // And the previous group should still be selected. + EXPECT_EQ(kOtherGroupName, + base::FieldTrialList::FindFullName(kFlagStudyName)); +} + TEST_F(VariationsSeedProcessorTest, NonExpiredStudyPrioritizedOverExpiredStudy) { VariationsSeedProcessor seed_processor; |