summaryrefslogtreecommitdiff
path: root/chromium/components/variations
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-07-17 13:57:45 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-07-19 13:44:40 +0000
commit6ec7b8da05d21a3878bd21c691b41e675d74bb1c (patch)
treeb87f250bc19413750b9bb9cdbf2da20ef5014820 /chromium/components/variations
parentec02ee4181c49b61fce1c8fb99292dbb8139cc90 (diff)
downloadqtwebengine-chromium-6ec7b8da05d21a3878bd21c691b41e675d74bb1c.tar.gz
BASELINE: Update Chromium to 60.0.3112.70
Change-Id: I9911c2280a014d4632f254857876a395d4baed2d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/components/variations')
-rw-r--r--chromium/components/variations/BUILD.gn4
-rw-r--r--chromium/components/variations/android/variations_seed_bridge.cc24
-rw-r--r--chromium/components/variations/service/variations_service.cc47
-rw-r--r--chromium/components/variations/service/variations_service.h4
-rw-r--r--chromium/components/variations/variations_seed_simulator.cc2
-rw-r--r--chromium/components/variations/variations_switches.cc7
-rw-r--r--chromium/components/variations/variations_switches.h1
7 files changed, 63 insertions, 26 deletions
diff --git a/chromium/components/variations/BUILD.gn b/chromium/components/variations/BUILD.gn
index bc7008a0fb3..38d6e3e5ce3 100644
--- a/chromium/components/variations/BUILD.gn
+++ b/chromium/components/variations/BUILD.gn
@@ -75,7 +75,7 @@ static_library("variations") {
"//crypto",
"//third_party/mt19937ar",
"//third_party/protobuf:protobuf_lite",
- "//third_party/zlib:compression_utils",
+ "//third_party/zlib/google:compression_utils",
]
if (is_android) {
@@ -140,6 +140,6 @@ source_set("unit_tests") {
"//components/prefs:test_support",
"//components/variations/field_trial_config:unit_tests",
"//testing/gtest",
- "//third_party/zlib:compression_utils",
+ "//third_party/zlib/google:compression_utils",
]
}
diff --git a/chromium/components/variations/android/variations_seed_bridge.cc b/chromium/components/variations/android/variations_seed_bridge.cc
index f5b73e9a2ec..6b7bd84baab 100644
--- a/chromium/components/variations/android/variations_seed_bridge.cc
+++ b/chromium/components/variations/android/variations_seed_bridge.cc
@@ -8,7 +8,6 @@
#include <stdint.h>
#include <vector>
-#include "base/android/context_utils.h"
#include "base/android/jni_android.h"
#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
@@ -18,7 +17,6 @@
using base::android::AttachCurrentThread;
using base::android::ConvertJavaStringToUTF8;
using base::android::ConvertUTF8ToJavaString;
-using base::android::GetApplicationContext;
using base::android::ScopedJavaLocalRef;
namespace {
@@ -50,20 +48,15 @@ void GetVariationsFirstRunSeed(std::string* seed_data,
bool* is_gzip_compressed) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jbyteArray> j_seed_data =
- Java_VariationsSeedBridge_getVariationsFirstRunSeedData(
- env, GetApplicationContext());
+ Java_VariationsSeedBridge_getVariationsFirstRunSeedData(env);
ScopedJavaLocalRef<jstring> j_seed_signature =
- Java_VariationsSeedBridge_getVariationsFirstRunSeedSignature(
- env, GetApplicationContext());
+ Java_VariationsSeedBridge_getVariationsFirstRunSeedSignature(env);
ScopedJavaLocalRef<jstring> j_seed_country =
- Java_VariationsSeedBridge_getVariationsFirstRunSeedCountry(
- env, GetApplicationContext());
+ Java_VariationsSeedBridge_getVariationsFirstRunSeedCountry(env);
ScopedJavaLocalRef<jstring> j_response_date =
- Java_VariationsSeedBridge_getVariationsFirstRunSeedDate(
- env, GetApplicationContext());
+ Java_VariationsSeedBridge_getVariationsFirstRunSeedDate(env);
jboolean j_is_gzip_compressed =
- Java_VariationsSeedBridge_getVariationsFirstRunSeedIsGzipCompressed(
- env, GetApplicationContext());
+ Java_VariationsSeedBridge_getVariationsFirstRunSeedIsGzipCompressed(env);
*seed_data = JavaByteArrayToString(env, j_seed_data.obj());
*seed_signature = ConvertJavaStringToUTF8(j_seed_signature);
*seed_country = ConvertJavaStringToUTF8(j_seed_country);
@@ -73,13 +66,12 @@ void GetVariationsFirstRunSeed(std::string* seed_data,
void ClearJavaFirstRunPrefs() {
JNIEnv* env = AttachCurrentThread();
- Java_VariationsSeedBridge_clearFirstRunPrefs(env, GetApplicationContext());
+ Java_VariationsSeedBridge_clearFirstRunPrefs(env);
}
void MarkVariationsSeedAsStored() {
JNIEnv* env = AttachCurrentThread();
- Java_VariationsSeedBridge_markVariationsSeedAsStored(env,
- GetApplicationContext());
+ Java_VariationsSeedBridge_markVariationsSeedAsStored(env);
}
void SetJavaFirstRunPrefsForTesting(const std::string& seed_data,
@@ -89,7 +81,7 @@ void SetJavaFirstRunPrefsForTesting(const std::string& seed_data,
bool is_gzip_compressed) {
JNIEnv* env = AttachCurrentThread();
Java_VariationsSeedBridge_setVariationsFirstRunSeed(
- env, GetApplicationContext(), StringToJavaByteArray(env, seed_data),
+ env, StringToJavaByteArray(env, seed_data),
ConvertUTF8ToJavaString(env, seed_signature),
ConvertUTF8ToJavaString(env, seed_country),
ConvertUTF8ToJavaString(env, response_date),
diff --git a/chromium/components/variations/service/variations_service.cc b/chromium/components/variations/service/variations_service.cc
index 34e79b117a8..e669699c2cd 100644
--- a/chromium/components/variations/service/variations_service.cc
+++ b/chromium/components/variations/service/variations_service.cc
@@ -8,6 +8,7 @@
#include <stdint.h>
#include <utility>
+#include <vector>
#include "base/build_time.h"
#include "base/command_line.h"
@@ -41,6 +42,7 @@
#include "net/http/http_response_headers.h"
#include "net/http/http_status_code.h"
#include "net/http/http_util.h"
+#include "net/traffic_annotation/network_traffic_annotation.h"
#include "net/url_request/url_fetcher.h"
#include "net/url_request/url_request_status.h"
#include "ui/base/device_form_factor.h"
@@ -335,9 +337,7 @@ bool VariationsService::CreateTrialsFromSeed(base::FeatureList* feature_list) {
GetChannelForVariations(client_->GetChannel());
UMA_HISTOGRAM_SPARSE_SLOWLY("Variations.UserChannel", channel);
- const std::string latest_country =
- local_state_->GetString(prefs::kVariationsCountry);
-
+ const std::string latest_country = GetLatestCountry();
std::unique_ptr<const base::FieldTrial::EntropyProvider> low_entropy_provider(
CreateLowEntropyProvider());
// Note that passing |&ui_string_overrider_| via base::Unretained below is
@@ -531,8 +531,27 @@ void VariationsService::DoActualFetch() {
if (pending_seed_request_)
return;
- pending_seed_request_ = net::URLFetcher::Create(0, variations_server_url_,
- net::URLFetcher::GET, this);
+ net::NetworkTrafficAnnotationTag traffic_annotation =
+ net::DefineNetworkTrafficAnnotation("chrome_variations_service", R"(
+ semantics {
+ sender: "Chrome Variations Service"
+ description:
+ "Retrieves the list of Google Chrome's Variations from the server, "
+ "which will apply to the next Chrome session upon a restart."
+ trigger:
+ "Requests are made periodically while Google Chrome is running."
+ data: "The operating system name."
+ destination: GOOGLE_OWNED_SERVICE
+ }
+ policy {
+ cookies_allowed: false
+ setting: "This feature cannot be disabled by settings."
+ policy_exception_justification:
+ "Not implemented, considered not required."
+ })");
+ pending_seed_request_ =
+ net::URLFetcher::Create(0, variations_server_url_, net::URLFetcher::GET,
+ this, traffic_annotation);
data_use_measurement::DataUseUserData::AttachToFetcher(
pending_seed_request_.get(),
data_use_measurement::DataUseUserData::VARIATIONS);
@@ -760,8 +779,7 @@ void VariationsService::PerformSimulationWithVersion(
variations::VariationsSeedSimulator seed_simulator(*default_provider,
*low_provider);
- const std::string latest_country =
- local_state_->GetString(prefs::kVariationsCountry);
+ const std::string latest_country = GetLatestCountry();
const variations::VariationsSeedSimulator::Result result =
seed_simulator.SimulateSeedStudies(
*seed, client_->GetApplicationLocale(),
@@ -803,6 +821,12 @@ std::string VariationsService::LoadPermanentConsistencyCountry(
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(version.IsValid());
+ const std::string override_country =
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kVariationsOverrideCountry);
+ if (!override_country.empty())
+ return override_country;
+
const base::ListValue* list_value =
local_state_->GetList(prefs::kVariationsPermanentConsistencyCountry);
std::string stored_version_string;
@@ -909,4 +933,13 @@ bool VariationsService::OverrideStoredPermanentCountry(
return true;
}
+std::string VariationsService::GetLatestCountry() const {
+ const std::string override_country =
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kVariationsOverrideCountry);
+ return !override_country.empty()
+ ? override_country
+ : local_state_->GetString(prefs::kVariationsCountry);
+}
+
} // namespace variations
diff --git a/chromium/components/variations/service/variations_service.h b/chromium/components/variations/service/variations_service.h
index 74357b5f14d..6e7033b69d9 100644
--- a/chromium/components/variations/service/variations_service.h
+++ b/chromium/components/variations/service/variations_service.h
@@ -128,6 +128,10 @@ class VariationsService
// reason.
bool OverrideStoredPermanentCountry(const std::string& override_country);
+ // Returns what variations will consider to be the latest country. Returns
+ // empty if it is not available.
+ std::string GetLatestCountry() const;
+
// Exposed for testing.
static std::string GetDefaultVariationsServerURLForTesting();
diff --git a/chromium/components/variations/variations_seed_simulator.cc b/chromium/components/variations/variations_seed_simulator.cc
index ea56739c1fd..59b56643adf 100644
--- a/chromium/components/variations/variations_seed_simulator.cc
+++ b/chromium/components/variations/variations_seed_simulator.cc
@@ -43,7 +43,7 @@ std::string SimulateGroupAssignment(
scoped_refptr<base::FieldTrial> trial(
base::FieldTrial::CreateSimulatedFieldTrial(
study.name(), processed_study.total_probability(),
- study.default_experiment_name(), entropy_value));
+ processed_study.GetDefaultExperimentName(), entropy_value));
for (int i = 0; i < study.experiment_size(); ++i) {
const Study_Experiment& experiment = study.experiment(i);
diff --git a/chromium/components/variations/variations_switches.cc b/chromium/components/variations/variations_switches.cc
index 0bc8e82746e..5b19c665f5a 100644
--- a/chromium/components/variations/variations_switches.cc
+++ b/chromium/components/variations/variations_switches.cc
@@ -26,6 +26,13 @@ const char kFakeVariationsChannel[] = "fake-variations-channel";
// escaped for all non-alphanumeric characters.
const char kForceFieldTrialParams[] = "force-fieldtrial-params";
+// Allows overriding the country used for evaluating variations. This is similar
+// to the "Override Variations Country" entry on chrome://translate-internals,
+// but is exposed as a command-line flag to allow testing First Run scenarios.
+// Additionally, unlike chrome://translate-internals, the value isn't persisted
+// across sessions.
+const char kVariationsOverrideCountry[] = "variations-override-country";
+
// Specifies a custom URL for the server which reports variation data to the
// client. Specifying this switch enables the Variations service on
// unofficial builds. See variations_service.cc.
diff --git a/chromium/components/variations/variations_switches.h b/chromium/components/variations/variations_switches.h
index adebf9b13a1..9755dac4145 100644
--- a/chromium/components/variations/variations_switches.h
+++ b/chromium/components/variations/variations_switches.h
@@ -14,6 +14,7 @@ namespace switches {
extern const char kDisableFieldTrialTestingConfig[];
extern const char kFakeVariationsChannel[];
extern const char kForceFieldTrialParams[];
+extern const char kVariationsOverrideCountry[];
extern const char kVariationsServerURL[];
} // namespace switches