summaryrefslogtreecommitdiff
path: root/chromium/components/variations
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-07-31 15:50:41 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-08-30 12:35:23 +0000
commit7b2ffa587235a47d4094787d72f38102089f402a (patch)
tree30e82af9cbab08a7fa028bb18f4f2987a3f74dfa /chromium/components/variations
parentd94af01c90575348c4e81a418257f254b6f8d225 (diff)
downloadqtwebengine-chromium-7b2ffa587235a47d4094787d72f38102089f402a.tar.gz
BASELINE: Update Chromium to 76.0.3809.94
Change-Id: I321c3f5f929c105aec0f98c5091ef6108822e647 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/components/variations')
-rw-r--r--chromium/components/variations/BUILD.gn3
-rw-r--r--chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java21
-rw-r--r--chromium/components/variations/entropy_provider_unittest.cc36
-rw-r--r--chromium/components/variations/field_trial_config/field_trial_testing_config_schema.json12
-rw-r--r--chromium/components/variations/field_trial_config/field_trial_util.cc52
-rw-r--r--chromium/components/variations/field_trial_config/field_trial_util.h15
-rw-r--r--chromium/components/variations/field_trial_config/field_trial_util_unittest.cc166
-rw-r--r--chromium/components/variations/pref_names.cc6
-rw-r--r--chromium/components/variations/pref_names.h1
-rw-r--r--chromium/components/variations/service/BUILD.gn1
-rw-r--r--chromium/components/variations/service/DEPS1
-rwxr-xr-xchromium/components/variations/service/generate_ui_string_overrider.py4
-rw-r--r--chromium/components/variations/service/variations_field_trial_creator.cc7
-rw-r--r--chromium/components/variations/service/variations_service.cc4
-rw-r--r--chromium/components/variations/service/variations_service_unittest.cc20
-rw-r--r--chromium/components/variations/study_filtering.h2
-rw-r--r--chromium/components/variations/variations_associated_data_unittest.cc3
-rw-r--r--chromium/components/variations/variations_seed_processor.cc3
-rw-r--r--chromium/components/variations/variations_seed_processor_unittest.cc4
19 files changed, 236 insertions, 125 deletions
diff --git a/chromium/components/variations/BUILD.gn b/chromium/components/variations/BUILD.gn
index 917a73cbe5c..6349f454f93 100644
--- a/chromium/components/variations/BUILD.gn
+++ b/chromium/components/variations/BUILD.gn
@@ -30,9 +30,6 @@ static_library("variations") {
"pref_names.h",
"processed_study.cc",
"processed_study.h",
- "proto/client_variations.proto",
- "proto/study.proto",
- "proto/variations_seed.proto",
"seed_response.cc",
"seed_response.h",
"study_filtering.cc",
diff --git a/chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java b/chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java
index 01054b79c19..12314097269 100644
--- a/chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java
+++ b/chromium/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java
@@ -9,13 +9,13 @@ import android.os.SystemClock;
import android.support.annotation.IntDef;
import org.chromium.base.ContextUtils;
+import org.chromium.base.FileUtils;
import org.chromium.base.Log;
import org.chromium.base.ThreadUtils;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.metrics.CachedMetrics.SparseHistogramSample;
import org.chromium.base.metrics.CachedMetrics.TimesHistogramSample;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.annotation.Retention;
@@ -47,7 +47,6 @@ public class VariationsSeedFetcher {
private static final String VARIATIONS_SERVER_URL =
"https://clientservices.googleapis.com/chrome-variations/seed?osname=";
- private static final int BUFFER_SIZE = 4096;
private static final int READ_TIMEOUT = 3000; // time in ms
private static final int REQUEST_TIMEOUT = 1000; // time in ms
@@ -272,22 +271,6 @@ public class VariationsSeedFetcher {
}
}
- /**
- * Convert a input stream into a byte array.
- * @param inputStream the input stream
- * @return the byte array which holds the data from the input stream
- * @throws IOException if I/O error occurs when reading data from the input stream
- */
- public static byte[] convertInputStreamToByteArray(InputStream inputStream) throws IOException {
- ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
- byte[] buffer = new byte[BUFFER_SIZE];
- int charactersReadCount = 0;
- while ((charactersReadCount = inputStream.read(buffer)) != -1) {
- byteBuffer.write(buffer, 0, charactersReadCount);
- }
- return byteBuffer.toByteArray();
- }
-
private String getHeaderFieldOrEmpty(HttpURLConnection connection, String name) {
String headerField = connection.getHeaderField(name);
if (headerField == null) {
@@ -300,7 +283,7 @@ public class VariationsSeedFetcher {
InputStream inputStream = null;
try {
inputStream = connection.getInputStream();
- return convertInputStreamToByteArray(inputStream);
+ return FileUtils.readStream(inputStream);
} finally {
if (inputStream != null) {
inputStream.close();
diff --git a/chromium/components/variations/entropy_provider_unittest.cc b/chromium/components/variations/entropy_provider_unittest.cc
index 79040f40cf3..121bc0903d8 100644
--- a/chromium/components/variations/entropy_provider_unittest.cc
+++ b/chromium/components/variations/entropy_provider_unittest.cc
@@ -185,14 +185,13 @@ TEST(EntropyProviderTest, UseOneTimeRandomizationSHA1) {
// particular client_id we use for unit tests they won't.
base::FieldTrialList field_trial_list(
std::make_unique<SHA1EntropyProvider>("client_id"));
- const int kNoExpirationYear = base::FieldTrialList::kNoExpirationYear;
scoped_refptr<base::FieldTrial> trials[] = {
base::FieldTrialList::FactoryGetFieldTrial(
- "one", 100, "default", kNoExpirationYear, 1, 1,
- base::FieldTrial::ONE_TIME_RANDOMIZED, nullptr),
+ "one", 100, "default", base::FieldTrial::ONE_TIME_RANDOMIZED,
+ nullptr),
base::FieldTrialList::FactoryGetFieldTrial(
- "two", 100, "default", kNoExpirationYear, 1, 1,
- base::FieldTrial::ONE_TIME_RANDOMIZED, nullptr),
+ "two", 100, "default", base::FieldTrial::ONE_TIME_RANDOMIZED,
+ nullptr),
};
for (size_t i = 0; i < base::size(trials); ++i) {
@@ -216,14 +215,13 @@ TEST(EntropyProviderTest, UseOneTimeRandomizationNormalizedMurmurHash) {
base::FieldTrialList field_trial_list(
std::make_unique<NormalizedMurmurHashEntropyProvider>(
1234, kMaxLowEntropySize));
- const int kNoExpirationYear = base::FieldTrialList::kNoExpirationYear;
scoped_refptr<base::FieldTrial> trials[] = {
base::FieldTrialList::FactoryGetFieldTrial(
- "one", 100, "default", kNoExpirationYear, 1, 1,
- base::FieldTrial::ONE_TIME_RANDOMIZED, nullptr),
+ "one", 100, "default", base::FieldTrial::ONE_TIME_RANDOMIZED,
+ nullptr),
base::FieldTrialList::FactoryGetFieldTrial(
- "two", 100, "default", kNoExpirationYear, 1, 1,
- base::FieldTrial::ONE_TIME_RANDOMIZED, nullptr),
+ "two", 100, "default", base::FieldTrial::ONE_TIME_RANDOMIZED,
+ nullptr),
};
for (size_t i = 0; i < base::size(trials); ++i) {
@@ -242,15 +240,14 @@ TEST(EntropyProviderTest, UseOneTimeRandomizationWithCustomSeedSHA1) {
// for one time randomization produce the same group assignments.
base::FieldTrialList field_trial_list(
std::make_unique<SHA1EntropyProvider>("client_id"));
- const int kNoExpirationYear = base::FieldTrialList::kNoExpirationYear;
const uint32_t kCustomSeed = 9001;
scoped_refptr<base::FieldTrial> trials[] = {
base::FieldTrialList::FactoryGetFieldTrialWithRandomizationSeed(
- "one", 100, "default", kNoExpirationYear, 1, 1,
- base::FieldTrial::ONE_TIME_RANDOMIZED, kCustomSeed, nullptr, nullptr),
+ "one", 100, "default", base::FieldTrial::ONE_TIME_RANDOMIZED,
+ kCustomSeed, nullptr, nullptr),
base::FieldTrialList::FactoryGetFieldTrialWithRandomizationSeed(
- "two", 100, "default", kNoExpirationYear, 1, 1,
- base::FieldTrial::ONE_TIME_RANDOMIZED, kCustomSeed, nullptr, nullptr),
+ "two", 100, "default", base::FieldTrial::ONE_TIME_RANDOMIZED,
+ kCustomSeed, nullptr, nullptr),
};
for (size_t i = 0; i < base::size(trials); ++i) {
@@ -271,15 +268,14 @@ TEST(EntropyProviderTest,
base::FieldTrialList field_trial_list(
std::make_unique<NormalizedMurmurHashEntropyProvider>(
1234, kMaxLowEntropySize));
- const int kNoExpirationYear = base::FieldTrialList::kNoExpirationYear;
const uint32_t kCustomSeed = 9001;
scoped_refptr<base::FieldTrial> trials[] = {
base::FieldTrialList::FactoryGetFieldTrialWithRandomizationSeed(
- "one", 100, "default", kNoExpirationYear, 1, 1,
- base::FieldTrial::ONE_TIME_RANDOMIZED, kCustomSeed, nullptr, nullptr),
+ "one", 100, "default", base::FieldTrial::ONE_TIME_RANDOMIZED,
+ kCustomSeed, nullptr, nullptr),
base::FieldTrialList::FactoryGetFieldTrialWithRandomizationSeed(
- "two", 100, "default", kNoExpirationYear, 1, 1,
- base::FieldTrial::ONE_TIME_RANDOMIZED, kCustomSeed, nullptr, nullptr),
+ "two", 100, "default", base::FieldTrial::ONE_TIME_RANDOMIZED,
+ kCustomSeed, nullptr, nullptr),
};
for (size_t i = 0; i < base::size(trials); ++i) {
diff --git a/chromium/components/variations/field_trial_config/field_trial_testing_config_schema.json b/chromium/components/variations/field_trial_config/field_trial_testing_config_schema.json
index 2d115d0b861..16f5380bae5 100644
--- a/chromium/components/variations/field_trial_config/field_trial_testing_config_schema.json
+++ b/chromium/components/variations/field_trial_config/field_trial_testing_config_schema.json
@@ -63,6 +63,18 @@
{
"field": "forcing_flag",
"type": "string"
+ },
+ {
+ "field": "override_ui_string",
+ "type": "array",
+ "contents": {
+ "type_name": "OverrideUIString",
+ "type": "struct",
+ "fields": [
+ {"field": "name_hash", "type": "int"},
+ {"field": "value", "type": "string"}
+ ]
+ }
}
]
}
diff --git a/chromium/components/variations/field_trial_config/field_trial_util.cc b/chromium/components/variations/field_trial_config/field_trial_util.cc
index ca28fb0148d..43f914a4112 100644
--- a/chromium/components/variations/field_trial_config/field_trial_util.cc
+++ b/chromium/components/variations/field_trial_config/field_trial_util.cc
@@ -17,9 +17,11 @@
#include "base/metrics/field_trial.h"
#include "base/strings/string_split.h"
#include "base/strings/stringprintf.h"
+#include "base/strings/utf_string_conversions.h"
#include "base/system/sys_info.h"
#include "components/variations/field_trial_config/fieldtrial_testing_config.h"
#include "components/variations/variations_associated_data.h"
+#include "components/variations/variations_seed_processor.h"
#include "net/base/escape.h"
#include "ui/base/device_form_factor.h"
@@ -71,9 +73,20 @@ bool HasFormFactor(const FieldTrialTestingExperiment& experiment) {
return experiment.form_factors_size == 0;
}
+// Records the override ui string config. Mainly used for testing.
+void ApplyUIStringOverrides(
+ const FieldTrialTestingExperiment& experiment,
+ const VariationsSeedProcessor::UIStringOverrideCallback& callback) {
+ for (size_t i = 0; i < experiment.override_ui_string_size; ++i) {
+ callback.Run(experiment.override_ui_string[i].name_hash,
+ base::UTF8ToUTF16(experiment.override_ui_string[i].value));
+ }
+}
+
void AssociateParamsFromExperiment(
const std::string& study_name,
const FieldTrialTestingExperiment& experiment,
+ const VariationsSeedProcessor::UIStringOverrideCallback& callback,
base::FeatureList* feature_list) {
if (experiment.params_size != 0) {
std::map<std::string, std::string> params;
@@ -103,6 +116,8 @@ void AssociateParamsFromExperiment(
experiment.disable_features[i],
base::FeatureList::OVERRIDE_DISABLE_FEATURE, trial);
}
+
+ ApplyUIStringOverrides(experiment, callback);
}
// Choose an experiment to associate. The rules are:
@@ -115,9 +130,11 @@ void AssociateParamsFromExperiment(
// a different experiment group for non low_end_device then pick that.
// - Otherwise, select the first experiment.
// - If no experiments match this platform, do not associate any of them.
-void ChooseExperiment(const FieldTrialTestingStudy& study,
- base::FeatureList* feature_list,
- Study::Platform platform) {
+void ChooseExperiment(
+ const FieldTrialTestingStudy& study,
+ const VariationsSeedProcessor::UIStringOverrideCallback& callback,
+ Study::Platform platform,
+ base::FeatureList* feature_list) {
const auto& command_line = *base::CommandLine::ForCurrentProcess();
const FieldTrialTestingExperiment* chosen_experiment = nullptr;
for (size_t i = 0; i < study.experiments_size; ++i) {
@@ -125,8 +142,9 @@ void ChooseExperiment(const FieldTrialTestingStudy& study,
if (HasPlatform(*experiment, platform)) {
if (!chosen_experiment &&
!HasDeviceLevelMismatch(*experiment) &&
- HasFormFactor(*experiment))
+ HasFormFactor(*experiment)) {
chosen_experiment = experiment;
+ }
if (experiment->forcing_flag &&
command_line.HasSwitch(experiment->forcing_flag)) {
@@ -135,8 +153,10 @@ void ChooseExperiment(const FieldTrialTestingStudy& study,
}
}
}
- if (chosen_experiment)
- AssociateParamsFromExperiment(study.name, *chosen_experiment, feature_list);
+ if (chosen_experiment) {
+ AssociateParamsFromExperiment(study.name, *chosen_experiment, callback,
+ feature_list);
+ }
}
} // namespace
@@ -219,23 +239,27 @@ bool AssociateParamsFromString(const std::string& varations_string) {
return true;
}
-void AssociateParamsFromFieldTrialConfig(const FieldTrialTestingConfig& config,
- base::FeatureList* feature_list,
- Study::Platform platform) {
+void AssociateParamsFromFieldTrialConfig(
+ const FieldTrialTestingConfig& config,
+ const VariationsSeedProcessor::UIStringOverrideCallback& callback,
+ Study::Platform platform,
+ base::FeatureList* feature_list) {
for (size_t i = 0; i < config.studies_size; ++i) {
const FieldTrialTestingStudy& study = config.studies[i];
if (study.experiments_size > 0) {
- ChooseExperiment(study, feature_list, platform);
+ ChooseExperiment(study, callback, platform, feature_list);
} else {
DLOG(ERROR) << "Unexpected empty study: " << study.name;
}
}
}
-void AssociateDefaultFieldTrialConfig(base::FeatureList* feature_list,
- Study::Platform platform) {
- AssociateParamsFromFieldTrialConfig(kFieldTrialConfig, feature_list,
- platform);
+void AssociateDefaultFieldTrialConfig(
+ const VariationsSeedProcessor::UIStringOverrideCallback& callback,
+ Study::Platform platform,
+ base::FeatureList* feature_list) {
+ AssociateParamsFromFieldTrialConfig(kFieldTrialConfig, callback, platform,
+ feature_list);
}
} // namespace variations
diff --git a/chromium/components/variations/field_trial_config/field_trial_util.h b/chromium/components/variations/field_trial_config/field_trial_util.h
index 1cbbb39afed..9b518afc266 100644
--- a/chromium/components/variations/field_trial_config/field_trial_util.h
+++ b/chromium/components/variations/field_trial_config/field_trial_util.h
@@ -8,6 +8,7 @@
#include <string>
#include "components/variations/proto/study.pb.h"
+#include "components/variations/variations_seed_processor.h"
namespace base {
class FeatureList;
@@ -34,15 +35,19 @@ bool AssociateParamsFromString(const std::string& variations_string);
// multiple groups with the |config| struct. This will also force the selection
// of FieldTrial groups specified in the |config|. Registers features associated
// with default field trials with |feature_list|.
-void AssociateParamsFromFieldTrialConfig(const FieldTrialTestingConfig& config,
- base::FeatureList* feature_list,
- Study::Platform platform);
+void AssociateParamsFromFieldTrialConfig(
+ const FieldTrialTestingConfig& config,
+ const VariationsSeedProcessor::UIStringOverrideCallback& callback,
+ Study::Platform platform,
+ base::FeatureList* feature_list);
// Associates params and features to FieldTrial groups and forces the selection
// of groups specified in testing/variations/fieldtrial_testing_config.json.
// Registers features associated with default field trials with |feature_list|.
-void AssociateDefaultFieldTrialConfig(base::FeatureList* feature_list,
- Study::Platform platform);
+void AssociateDefaultFieldTrialConfig(
+ const VariationsSeedProcessor::UIStringOverrideCallback& callback,
+ Study::Platform platform,
+ base::FeatureList* feature_list);
} // namespace variations
diff --git a/chromium/components/variations/field_trial_config/field_trial_util_unittest.cc b/chromium/components/variations/field_trial_config/field_trial_util_unittest.cc
index 9e2372d61dd..47f14c4942f 100644
--- a/chromium/components/variations/field_trial_config/field_trial_util_unittest.cc
+++ b/chromium/components/variations/field_trial_config/field_trial_util_unittest.cc
@@ -13,14 +13,43 @@
#include "base/metrics/field_trial.h"
#include "base/stl_util.h"
#include "base/test/scoped_feature_list.h"
+#include "base/strings/utf_string_conversions.h"
#include "components/variations/field_trial_config/fieldtrial_testing_config.h"
#include "components/variations/variations_associated_data.h"
+#include "components/variations/variations_seed_processor.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/device_form_factor.h"
namespace variations {
namespace {
+class TestOverrideStringCallback {
+ public:
+ typedef std::map<uint32_t, base::string16> OverrideMap;
+
+ TestOverrideStringCallback()
+ : callback_(base::BindRepeating(&TestOverrideStringCallback::Override,
+ base::Unretained(this))) {}
+
+ virtual ~TestOverrideStringCallback() {}
+
+ const VariationsSeedProcessor::UIStringOverrideCallback& callback() const {
+ return callback_;
+ }
+
+ const OverrideMap& overrides() const { return overrides_; }
+
+ private:
+ void Override(uint32_t hash, const base::string16& string) {
+ overrides_[hash] = string;
+ }
+
+ VariationsSeedProcessor::UIStringOverrideCallback callback_;
+ OverrideMap overrides_;
+
+ DISALLOW_COPY_AND_ASSIGN(TestOverrideStringCallback);
+};
+
class FieldTrialUtilTest : public ::testing::Test {
public:
FieldTrialUtilTest() : field_trial_list_(nullptr) {}
@@ -45,8 +74,9 @@ class FieldTrialUtilTest : public ::testing::Test {
}
}
- private:
+ protected:
base::FieldTrialList field_trial_list_;
+ TestOverrideStringCallback override_callback_;
DISALLOW_COPY_AND_ASSIGN(FieldTrialUtilTest);
};
@@ -83,15 +113,18 @@ TEST_F(FieldTrialUtilTest, AssociateParamsFromFieldTrialConfig) {
{{"x", "1"}, {"y", "2"}};
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_0[] = {
{"TestGroup1", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING,
- array_kFieldTrialConfig_params_0, 2, nullptr, 0, nullptr, 0, nullptr},
+ array_kFieldTrialConfig_params_0, 2, nullptr, 0, nullptr, 0, nullptr,
+ nullptr, 0},
};
const FieldTrialTestingExperimentParams array_kFieldTrialConfig_params_1[] =
{{"x", "3"}, {"y", "4"}};
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_1[] = {
{"TestGroup2", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING,
- array_kFieldTrialConfig_params_0, 2, nullptr, 0, nullptr, 0, nullptr},
+ array_kFieldTrialConfig_params_0, 2, nullptr, 0, nullptr, 0, nullptr,
+ nullptr, 0},
{"TestGroup2-2", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING,
- array_kFieldTrialConfig_params_1, 2, nullptr, 0, nullptr, 0, nullptr},
+ array_kFieldTrialConfig_params_1, 2, nullptr, 0, nullptr, 0, nullptr,
+ nullptr, 0},
};
const FieldTrialTestingStudy array_kFieldTrialConfig_studies[] = {
{"TestTrial1", array_kFieldTrialConfig_experiments_0, 1},
@@ -102,7 +135,10 @@ TEST_F(FieldTrialUtilTest, AssociateParamsFromFieldTrialConfig) {
};
base::FeatureList feature_list;
- AssociateParamsFromFieldTrialConfig(kConfig, &feature_list, platform);
+ AssociateParamsFromFieldTrialConfig(kConfig,
+ override_callback_.callback(),
+ platform,
+ &feature_list);
EXPECT_EQ("1", GetVariationParamValue("TestTrial1", "x"));
EXPECT_EQ("2", GetVariationParamValue("TestTrial1", "y"));
@@ -141,7 +177,8 @@ TEST_F(FieldTrialUtilTest,
const Study::Platform platform = all_platforms[i];
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments[] = {
{"TestGroup", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING,
- array_kFieldTrialConfig_params, 2, nullptr, 0, nullptr, 0, nullptr},
+ array_kFieldTrialConfig_params, 2, nullptr, 0, nullptr, 0, nullptr,
+ nullptr, 0},
};
const FieldTrialTestingStudy array_kFieldTrialConfig_studies[] = {
{"TestTrial", array_kFieldTrialConfig_experiments, 1}
@@ -151,7 +188,10 @@ TEST_F(FieldTrialUtilTest,
};
base::FeatureList feature_list;
- AssociateParamsFromFieldTrialConfig(kConfig, &feature_list, platform);
+ AssociateParamsFromFieldTrialConfig(kConfig,
+ override_callback_.callback(),
+ platform,
+ &feature_list);
EXPECT_EQ("1", GetVariationParamValue("TestTrial", "x"));
EXPECT_EQ("2", GetVariationParamValue("TestTrial", "y"));
@@ -173,7 +213,8 @@ TEST_F(FieldTrialUtilTest,
{{"x", "1"}, {"y", "2"}};
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments[] = {
{"TestGroup", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING,
- array_kFieldTrialConfig_params, 2, nullptr, 0, nullptr, 0, nullptr},
+ array_kFieldTrialConfig_params, 2, nullptr, 0, nullptr, 0, nullptr,
+ nullptr, 0},
};
const FieldTrialTestingStudy array_kFieldTrialConfig_studies[] =
{{"TestTrial", array_kFieldTrialConfig_experiments, 1}};
@@ -182,8 +223,9 @@ TEST_F(FieldTrialUtilTest,
// The platforms don't match, so trial shouldn't be added.
base::FeatureList feature_list;
- AssociateParamsFromFieldTrialConfig(kConfig, &feature_list,
- Study::PLATFORM_ANDROID_WEBVIEW);
+ AssociateParamsFromFieldTrialConfig(kConfig, override_callback_.callback(),
+ Study::PLATFORM_ANDROID_WEBVIEW,
+ &feature_list);
EXPECT_EQ("", GetVariationParamValue("TestTrial", "x"));
EXPECT_EQ("", GetVariationParamValue("TestTrial", "y"));
@@ -202,7 +244,8 @@ TEST_F(FieldTrialUtilTest,
{{"x", "1"}, {"y", "2"}};
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments[] = {
{"TestGroup", platforms, 2, {}, 0, Study::OPTIONAL_BOOL_MISSING,
- array_kFieldTrialConfig_params, 2, nullptr, 0, nullptr, 0, nullptr},
+ array_kFieldTrialConfig_params, 2, nullptr, 0, nullptr, 0, nullptr,
+ nullptr, 0},
};
const FieldTrialTestingStudy array_kFieldTrialConfig_studies[] =
{{"TestTrial", array_kFieldTrialConfig_experiments, 1}};
@@ -211,8 +254,9 @@ TEST_F(FieldTrialUtilTest,
// One of the platforms matches, so trial should be added.
base::FeatureList feature_list;
- AssociateParamsFromFieldTrialConfig(kConfig, &feature_list,
- Study::PLATFORM_ANDROID_WEBVIEW);
+ AssociateParamsFromFieldTrialConfig(kConfig, override_callback_.callback(),
+ Study::PLATFORM_ANDROID_WEBVIEW,
+ &feature_list);
EXPECT_EQ("1", GetVariationParamValue("TestTrial", "x"));
EXPECT_EQ("2", GetVariationParamValue("TestTrial", "y"));
@@ -235,7 +279,8 @@ TEST_F(FieldTrialUtilTest,
{{"x", "1"}, {"y", "2"}};
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments[] = {
{"TestGroup", &platform, 1, form_factors, 4, Study::OPTIONAL_BOOL_MISSING,
- array_kFieldTrialConfig_params, 2, nullptr, 0, nullptr, 0, nullptr},
+ array_kFieldTrialConfig_params, 2, nullptr, 0, nullptr, 0, nullptr,
+ nullptr, 0},
};
const FieldTrialTestingStudy array_kFieldTrialConfig_studies[] =
{{"TestTrial", array_kFieldTrialConfig_experiments, 1}};
@@ -244,7 +289,10 @@ TEST_F(FieldTrialUtilTest,
// One of the form_factors matches, so trial should be added.
base::FeatureList feature_list;
- AssociateParamsFromFieldTrialConfig(kConfig, &feature_list, platform);
+ AssociateParamsFromFieldTrialConfig(kConfig,
+ override_callback_.callback(),
+ platform,
+ &feature_list);
EXPECT_EQ("1", GetVariationParamValue("TestTrial", "x"));
EXPECT_EQ("2", GetVariationParamValue("TestTrial", "y"));
@@ -267,7 +315,7 @@ TEST_F(FieldTrialUtilTest,
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments[] = {
{"TestGroup", &platform, 1, &form_factor, 1,
Study::OPTIONAL_BOOL_MISSING, array_kFieldTrialConfig_params, 2,
- nullptr, 0, nullptr, 0, nullptr},
+ nullptr, 0, nullptr, 0, nullptr, nullptr, 0},
};
const FieldTrialTestingStudy array_kFieldTrialConfig_studies[] = {
{"TestTrial", array_kFieldTrialConfig_experiments, 1}
@@ -278,7 +326,10 @@ TEST_F(FieldTrialUtilTest,
// One of the form_factors matches, so trial should be added.
base::FeatureList feature_list;
- AssociateParamsFromFieldTrialConfig(kConfig, &feature_list, platform);
+ AssociateParamsFromFieldTrialConfig(kConfig,
+ override_callback_.callback(),
+ platform,
+ &feature_list);
EXPECT_EQ("1", GetVariationParamValue("TestTrial", "x"));
EXPECT_EQ("2", GetVariationParamValue("TestTrial", "y"));
@@ -307,7 +358,7 @@ TEST_F(FieldTrialUtilTest,
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments[] = {
{"TestGroup", &platform, 1, &form_factor, 1,
Study::OPTIONAL_BOOL_MISSING, array_kFieldTrialConfig_params, 2,
- nullptr, 0, nullptr, 0, nullptr},
+ nullptr, 0, nullptr, 0, nullptr, nullptr, 0},
};
const FieldTrialTestingStudy array_kFieldTrialConfig_studies[] =
{{"TestTrial", array_kFieldTrialConfig_experiments, 1}};
@@ -316,8 +367,9 @@ TEST_F(FieldTrialUtilTest,
// The form factor don't match, so trial shouldn't be added.
base::FeatureList feature_list;
- AssociateParamsFromFieldTrialConfig(kConfig, &feature_list,
- Study::PLATFORM_ANDROID_WEBVIEW);
+ AssociateParamsFromFieldTrialConfig(kConfig, override_callback_.callback(),
+ Study::PLATFORM_ANDROID_WEBVIEW,
+ &feature_list);
EXPECT_EQ("", GetVariationParamValue("TestTrial", "x"));
EXPECT_EQ("", GetVariationParamValue("TestTrial", "y"));
@@ -341,13 +393,13 @@ TEST_F(FieldTrialUtilTest, AssociateFeaturesFromFieldTrialConfig) {
const Study::Platform platform = Study::PLATFORM_LINUX;
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_0[] = {
{"TestGroup1", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING, nullptr,
- 0, enable_features, 2, nullptr, 0, nullptr},
+ 0, enable_features, 2, nullptr, 0, nullptr, nullptr, 0},
};
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_1[] = {
{"TestGroup2", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING, nullptr,
- 0, nullptr, 0, disable_features, 2, nullptr},
+ 0, nullptr, 0, disable_features, 2, nullptr, nullptr, 0},
{"TestGroup2-2", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING,
- nullptr, 0, nullptr, 0, nullptr, 0, nullptr},
+ nullptr, 0, nullptr, 0, nullptr, 0, nullptr, nullptr, 0},
};
const FieldTrialTestingStudy array_kFieldTrialConfig_studies[] = {
@@ -360,7 +412,10 @@ TEST_F(FieldTrialUtilTest, AssociateFeaturesFromFieldTrialConfig) {
};
std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList);
- AssociateParamsFromFieldTrialConfig(kConfig, feature_list.get(), platform);
+ AssociateParamsFromFieldTrialConfig(kConfig,
+ override_callback_.callback(),
+ platform,
+ feature_list.get());
base::test::ScopedFeatureList scoped_feature_list;
scoped_feature_list.InitWithFeatureList(std::move(feature_list));
@@ -381,20 +436,20 @@ TEST_F(FieldTrialUtilTest, AssociateForcingFlagsFromFieldTrialConfig) {
const Study::Platform platform = Study::PLATFORM_LINUX;
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_0[] = {
{"TestGroup1", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING, nullptr,
- 0, nullptr, 0, nullptr, 0, nullptr}};
+ 0, nullptr, 0, nullptr, 0, nullptr, nullptr, 0}};
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_1[] = {
{"TestGroup2", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING, nullptr,
- 0, nullptr, 0, nullptr, 0, nullptr},
+ 0, nullptr, 0, nullptr, 0, nullptr, nullptr, 0},
{"ForcedGroup2", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING,
- nullptr, 0, nullptr, 0, nullptr, 0, "flag-2"},
+ nullptr, 0, nullptr, 0, nullptr, 0, "flag-2", nullptr, 0},
};
const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_2[] = {
{"TestGroup3", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING, nullptr,
- 0, nullptr, 0, nullptr, 0, nullptr},
+ 0, nullptr, 0, nullptr, 0, nullptr, nullptr, 0},
{"ForcedGroup3", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING,
- nullptr, 0, nullptr, 0, nullptr, 0, "flag-3"},
+ nullptr, 0, nullptr, 0, nullptr, 0, "flag-3", nullptr, 0},
{"ForcedGroup3-2", &platform, 1, {}, 0, Study::OPTIONAL_BOOL_MISSING,
- nullptr, 0, nullptr, 0, nullptr, 0, "flag-3-2"},
+ nullptr, 0, nullptr, 0, nullptr, 0, "flag-3-2", nullptr, 0},
};
const FieldTrialTestingStudy array_kFieldTrialConfig_studies[] = {
{"TestTrial1", array_kFieldTrialConfig_experiments_0, 1},
@@ -409,13 +464,62 @@ TEST_F(FieldTrialUtilTest, AssociateForcingFlagsFromFieldTrialConfig) {
base::CommandLine::ForCurrentProcess()->AppendSwitch("flag-3");
base::FeatureList feature_list;
- AssociateParamsFromFieldTrialConfig(kConfig, &feature_list, platform);
+ AssociateParamsFromFieldTrialConfig(kConfig,
+ override_callback_.callback(),
+ platform,
+ &feature_list);
EXPECT_EQ("TestGroup1", base::FieldTrialList::FindFullName("TestTrial1"));
EXPECT_EQ("ForcedGroup2", base::FieldTrialList::FindFullName("TestTrial2"));
EXPECT_EQ("ForcedGroup3", base::FieldTrialList::FindFullName("TestTrial3"));
}
+TEST_F(FieldTrialUtilTest,
+ AssociateParamsFromFieldTrialConfigWithUIStringOverrides) {
+ const Study::Platform platform = Study::PLATFORM_WINDOWS;
+ const FieldTrialTestingExperimentParams array_kFieldTrialConfig_params[] =
+ {{"x", "1"}, {"y", "2"}};
+ const OverrideUIString array_kFieldTrialConfig_override_ui_string[] =
+ {{1234, "test1"}, {5678, "test2"}};
+ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments[] = {
+ {"TestGroup", &platform, 1, nullptr, 0,
+ Study::OPTIONAL_BOOL_MISSING, array_kFieldTrialConfig_params, 2,
+ nullptr, 0, nullptr, 0, nullptr,
+ array_kFieldTrialConfig_override_ui_string, 2},
+ };
+ const FieldTrialTestingStudy array_kFieldTrialConfig_studies[] = {
+ {"TestTrial", array_kFieldTrialConfig_experiments, 1}
+ };
+ const FieldTrialTestingConfig kConfig = {
+ array_kFieldTrialConfig_studies, 1
+ };
+
+ // One of the form_factors matches, so trial should be added.
+ base::FeatureList feature_list;
+ AssociateParamsFromFieldTrialConfig(kConfig,
+ override_callback_.callback(),
+ platform,
+ &feature_list);
+
+ EXPECT_EQ("1", GetVariationParamValue("TestTrial", "x"));
+ EXPECT_EQ("2", GetVariationParamValue("TestTrial", "y"));
+
+ std::map<std::string, std::string> params;
+ EXPECT_TRUE(GetVariationParams("TestTrial", &params));
+ EXPECT_EQ(2U, params.size());
+ EXPECT_EQ("1", params["x"]);
+ EXPECT_EQ("2", params["y"]);
+
+ EXPECT_EQ("TestGroup", base::FieldTrialList::FindFullName("TestTrial"));
+ const TestOverrideStringCallback::OverrideMap& overrides =
+ override_callback_.overrides();
+ EXPECT_EQ(2u, overrides.size());
+ auto it = overrides.find(1234);
+ EXPECT_EQ(base::ASCIIToUTF16("test1"), it->second);
+ it = overrides.find(5678);
+ EXPECT_EQ(base::ASCIIToUTF16("test2"), it->second);
+}
+
TEST_F(FieldTrialUtilTest, TestEscapeValue) {
std::string str = "trail.:/,*";
std::string escaped_str = EscapeValue(str);
diff --git a/chromium/components/variations/pref_names.cc b/chromium/components/variations/pref_names.cc
index 0a90905d9ae..2c950993043 100644
--- a/chromium/components/variations/pref_names.cc
+++ b/chromium/components/variations/pref_names.cc
@@ -33,12 +33,6 @@ const char kVariationsLastFetchTime[] = "variations_last_fetch_time";
const char kVariationsPermanentConsistencyCountry[] =
"variations_permanent_consistency_country";
-// Previously used by CachingPermutedEntropyProvider, which has been replaced by
-// NormalizedMurmurHashEntropyProvider. Deleted on startup.
-// TODO(crbug/912368): Remove this after it's been deleted from most installs.
-const char kVariationsPermutedEntropyCache[] =
- "user_experience_metrics.permuted_entropy_cache";
-
// String for the restrict parameter to be appended to the variations URL.
const char kVariationsRestrictParameter[] = "variations_restrict_parameter";
diff --git a/chromium/components/variations/pref_names.h b/chromium/components/variations/pref_names.h
index a058a544387..2b86485e707 100644
--- a/chromium/components/variations/pref_names.h
+++ b/chromium/components/variations/pref_names.h
@@ -17,7 +17,6 @@ extern const char kVariationsCrashStreak[];
extern const char kVariationsFailedToFetchSeedStreak[];
extern const char kVariationsLastFetchTime[];
extern const char kVariationsPermanentConsistencyCountry[];
-extern const char kVariationsPermutedEntropyCache[];
extern const char kVariationsRestrictParameter[];
extern const char kVariationsSafeCompressedSeed[];
extern const char kVariationsSafeSeedDate[];
diff --git a/chromium/components/variations/service/BUILD.gn b/chromium/components/variations/service/BUILD.gn
index bdabd37ad8d..341c18e7744 100644
--- a/chromium/components/variations/service/BUILD.gn
+++ b/chromium/components/variations/service/BUILD.gn
@@ -38,7 +38,6 @@ static_library("service") {
deps = [
":buildflags",
"//base",
- "//components/data_use_measurement/core",
"//components/encrypted_messages",
"//components/language/core/browser",
"//components/metrics",
diff --git a/chromium/components/variations/service/DEPS b/chromium/components/variations/service/DEPS
index 4ccdcd65e4c..0604104a317 100644
--- a/chromium/components/variations/service/DEPS
+++ b/chromium/components/variations/service/DEPS
@@ -1,5 +1,4 @@
include_rules = [
- "+components/data_use_measurement/core",
"+components/encrypted_messages",
"+components/language/core/browser",
"+components/metrics",
diff --git a/chromium/components/variations/service/generate_ui_string_overrider.py b/chromium/components/variations/service/generate_ui_string_overrider.py
index 7be44c21c96..0b75bea1911 100755
--- a/chromium/components/variations/service/generate_ui_string_overrider.py
+++ b/chromium/components/variations/service/generate_ui_string_overrider.py
@@ -33,7 +33,7 @@ class HashCollisionError(Error):
Resource = collections.namedtuple("Resource", ['hash', 'name', 'index'])
-def _HashName(name):
+def HashName(name):
"""Returns the hash id for a name.
Args:
@@ -76,7 +76,7 @@ def _GetResourceListFromString(resources_content):
Returns:
A sorted list of |Resource| objects.
"""
- resources = [Resource(_HashName(name), name, index) for name, index in
+ resources = [Resource(HashName(name), name, index) for name, index in
_GetNameIndexPairsIter(resources_content)]
# Deduplicate resources. Some name-index pairs appear in both chromium_ and
diff --git a/chromium/components/variations/service/variations_field_trial_creator.cc b/chromium/components/variations/service/variations_field_trial_creator.cc
index d91740aa25f..7c6a2a7e733 100644
--- a/chromium/components/variations/service/variations_field_trial_creator.cc
+++ b/chromium/components/variations/service/variations_field_trial_creator.cc
@@ -530,7 +530,12 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
if (!command_line->HasSwitch(switches::kDisableFieldTrialTestingConfig) &&
!command_line->HasSwitch(::switches::kForceFieldTrials) &&
!command_line->HasSwitch(switches::kVariationsServerURL)) {
- AssociateDefaultFieldTrialConfig(feature_list.get(), GetPlatform());
+ // Note that passing base::Unretained(this) below is safe because the
+ // callback is executed synchronously.
+ AssociateDefaultFieldTrialConfig(
+ base::BindRepeating(&VariationsFieldTrialCreator::OverrideUIString,
+ base::Unretained(this)),
+ GetPlatform(), feature_list.get());
used_testing_config = true;
}
#endif // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
diff --git a/chromium/components/variations/service/variations_service.cc b/chromium/components/variations/service/variations_service.cc
index c2807a85ec8..2066c217372 100644
--- a/chromium/components/variations/service/variations_service.cc
+++ b/chromium/components/variations/service/variations_service.cc
@@ -29,7 +29,6 @@
#include "base/values.h"
#include "base/version.h"
#include "build/build_config.h"
-#include "components/data_use_measurement/core/data_use_user_data.h"
#include "components/encrypted_messages/encrypted_message.pb.h"
#include "components/encrypted_messages/message_encrypter.h"
#include "components/metrics/clean_exit_beacon.h"
@@ -554,9 +553,6 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
const char* supported_im = enable_deltas ? "x-bm,gzip" : "gzip";
resource_request->headers.SetHeader("A-IM", supported_im);
- // TODO(https://crbug.com/808498): Re-add data use measurement once
- // SimpleURLLoader supports it.
- // ID=data_use_measurement::DataUseUserData::VARIATIONS
pending_seed_request_ = network::SimpleURLLoader::Create(
std::move(resource_request), traffic_annotation);
// Ensure our callback is called even with "304 Not Modified" responses.
diff --git a/chromium/components/variations/service/variations_service_unittest.cc b/chromium/components/variations/service/variations_service_unittest.cc
index b7cc43fa64c..ace3b64bd14 100644
--- a/chromium/components/variations/service/variations_service_unittest.cc
+++ b/chromium/components/variations/service/variations_service_unittest.cc
@@ -557,8 +557,8 @@ TEST_F(VariationsServiceTest, InstanceManipulations) {
std::string headers("HTTP/1.1 200 OK\n\n");
network::ResourceResponseHead head;
- head.headers = new net::HttpResponseHeaders(
- net::HttpUtil::AssembleRawHeaders(headers.c_str(), headers.size()));
+ head.headers = base::MakeRefCounted<net::HttpResponseHeaders>(
+ net::HttpUtil::AssembleRawHeaders(headers));
if (!cases[i].im.empty())
head.headers->AddHeader(cases[i].im);
network::URLLoaderCompletionStatus status;
@@ -587,8 +587,8 @@ TEST_F(VariationsServiceTest, CountryHeader) {
std::string headers("HTTP/1.1 200 OK\n\n");
network::ResourceResponseHead head;
- head.headers = new net::HttpResponseHeaders(
- net::HttpUtil::AssembleRawHeaders(headers.c_str(), headers.size()));
+ head.headers = base::MakeRefCounted<net::HttpResponseHeaders>(
+ net::HttpUtil::AssembleRawHeaders(headers));
head.headers->AddHeader("X-Country: test");
network::URLLoaderCompletionStatus status;
status.decoded_body_length = serialized_seed.size();
@@ -849,8 +849,8 @@ TEST_F(VariationsServiceTest, SafeMode_SuccessfulFetchClearsFailureStreaks) {
std::string headers("HTTP/1.1 200 OK\n\n");
network::ResourceResponseHead head;
- head.headers = new net::HttpResponseHeaders(
- net::HttpUtil::AssembleRawHeaders(headers.c_str(), headers.size()));
+ head.headers = base::MakeRefCounted<net::HttpResponseHeaders>(
+ net::HttpUtil::AssembleRawHeaders(headers));
head.headers->AddHeader(seed_signature_header);
network::URLLoaderCompletionStatus status;
status.decoded_body_length = response.size();
@@ -879,8 +879,8 @@ TEST_F(VariationsServiceTest, SafeMode_NotModifiedFetchClearsFailureStreaks) {
std::string headers("HTTP/1.1 304 Not Modified\n\n");
network::ResourceResponseHead head;
- head.headers = new net::HttpResponseHeaders(
- net::HttpUtil::AssembleRawHeaders(headers.c_str(), headers.size()));
+ head.headers = base::MakeRefCounted<net::HttpResponseHeaders>(
+ net::HttpUtil::AssembleRawHeaders(headers));
network::URLLoaderCompletionStatus status;
service.test_url_loader_factory()->AddResponse(service.interception_url(),
head, "", status);
@@ -1019,8 +1019,8 @@ TEST_F(VariationsServiceTest, NullResponseReceivedWithHTTPOk) {
std::string headers("HTTP/1.1 200 OK\n\n");
network::ResourceResponseHead head;
- head.headers = new net::HttpResponseHeaders(
- net::HttpUtil::AssembleRawHeaders(headers.c_str(), headers.size()));
+ head.headers = base::MakeRefCounted<net::HttpResponseHeaders>(
+ net::HttpUtil::AssembleRawHeaders(headers));
EXPECT_EQ(net::HTTP_OK, head.headers->response_code());
head.headers->AddHeader(seed_signature_header);
// Set ERR_FAILED status code despite the 200 response code.
diff --git a/chromium/components/variations/study_filtering.h b/chromium/components/variations/study_filtering.h
index 0448f121d0d..f062544a269 100644
--- a/chromium/components/variations/study_filtering.h
+++ b/chromium/components/variations/study_filtering.h
@@ -57,7 +57,7 @@ bool CheckStudyEndDate(const Study::Filter& filter,
bool CheckStudyVersion(const Study::Filter& filter,
const base::Version& version);
-// checks whether a study is applicable for the given OS version per |filter|.
+// Checks whether a study is applicable for the given OS version per |filter|.
bool CheckStudyOSVersion(const Study::Filter& filter,
const base::Version& os_version);
diff --git a/chromium/components/variations/variations_associated_data_unittest.cc b/chromium/components/variations/variations_associated_data_unittest.cc
index 71602a8fdc0..6a91b69443c 100644
--- a/chromium/components/variations/variations_associated_data_unittest.cc
+++ b/chromium/components/variations/variations_associated_data_unittest.cc
@@ -21,7 +21,7 @@ VariationID GetIDForTrial(IDCollectionKey key, base::FieldTrial* trial) {
return GetGoogleVariationID(key, trial->trial_name(), trial->group_name());
}
-// Call FieldTrialList::FactoryGetFieldTrial() with a future expiry date.
+// Call FieldTrialList::FactoryGetFieldTrial().
scoped_refptr<base::FieldTrial> CreateFieldTrial(
const std::string& trial_name,
int total_probability,
@@ -29,7 +29,6 @@ scoped_refptr<base::FieldTrial> CreateFieldTrial(
int* default_group_number) {
return base::FieldTrialList::FactoryGetFieldTrial(
trial_name, total_probability, default_group_name,
- base::FieldTrialList::kNoExpirationYear, 1, 1,
base::FieldTrial::SESSION_RANDOMIZED, default_group_number);
}
diff --git a/chromium/components/variations/variations_seed_processor.cc b/chromium/components/variations/variations_seed_processor.cc
index 653cf2977ef..2a61928beaa 100644
--- a/chromium/components/variations/variations_seed_processor.cc
+++ b/chromium/components/variations/variations_seed_processor.cc
@@ -253,8 +253,7 @@ void VariationsSeedProcessor::CreateTrialFromStudy(
scoped_refptr<base::FieldTrial> trial(
base::FieldTrialList::FactoryGetFieldTrialWithRandomizationSeed(
study.name(), processed_study.total_probability(),
- processed_study.GetDefaultExperimentName(),
- base::FieldTrialList::kNoExpirationYear, 1, 1, randomization_type,
+ processed_study.GetDefaultExperimentName(), randomization_type,
randomization_seed, nullptr,
ShouldStudyUseLowEntropy(study) ? low_entropy_provider : nullptr));
diff --git a/chromium/components/variations/variations_seed_processor_unittest.cc b/chromium/components/variations/variations_seed_processor_unittest.cc
index f41d36ecc39..5a6e7bbde82 100644
--- a/chromium/components/variations/variations_seed_processor_unittest.cc
+++ b/chromium/components/variations/variations_seed_processor_unittest.cc
@@ -896,8 +896,8 @@ TEST_F(VariationsSeedProcessorTest, ExistingFieldTrial_ExpiredByConfig) {
// group than the study config, which is expired. This tests that we don't
// crash in such a case.
auto* trial = base::FieldTrialList::FactoryGetFieldTrial(
- "Study1", 100, "ExistingDefault", base::FieldTrialList::kNoExpirationYear,
- 1, 1, base::FieldTrial::SESSION_RANDOMIZED, nullptr);
+ "Study1", 100, "ExistingDefault", base::FieldTrial::SESSION_RANDOMIZED,
+ nullptr);
trial->AppendGroup("A", 100);
trial->SetForced();