diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-17 13:57:45 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-19 13:44:40 +0000 |
commit | 6ec7b8da05d21a3878bd21c691b41e675d74bb1c (patch) | |
tree | b87f250bc19413750b9bb9cdbf2da20ef5014820 /chromium/components/variations | |
parent | ec02ee4181c49b61fce1c8fb99292dbb8139cc90 (diff) | |
download | qtwebengine-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')
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 |