Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2177)

Unified Diff: chrome/browser/metrics/variations/variations_service.cc

Issue 883803002: Expose API on VariationsService to set the restrict mode param. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/metrics/variations/variations_service.cc
diff --git a/chrome/browser/metrics/variations/variations_service.cc b/chrome/browser/metrics/variations/variations_service.cc
index 56df9266e79f8457799c6bb3e125d5374d1a56ce..c0b514515f642a0bb389f89b92174396ef2895aa 100644
--- a/chrome/browser/metrics/variations/variations_service.cc
+++ b/chrome/browser/metrics/variations/variations_service.cc
@@ -326,7 +326,8 @@ void VariationsService::StartRepeatedVariationsSeedFetch() {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
// Initialize the Variations server URL.
- variations_server_url_ = GetVariationsServerURL(policy_pref_service_);
+ variations_server_url_ =
+ GetVariationsServerURL(policy_pref_service_, restrict_mode_);
// Check that |CreateTrialsFromSeed| was called, which is necessary to
// retrieve the serial number that will be sent to the server.
@@ -334,12 +335,11 @@ void VariationsService::StartRepeatedVariationsSeedFetch() {
DCHECK(!request_scheduler_.get());
// Note that the act of instantiating the scheduler will start the fetch, if
- // the scheduler deems appropriate. Using Unretained is fine here since the
- // lifespan of request_scheduler_ is guaranteed to be shorter than that of
- // this service.
+ // the scheduler deems appropriate.
request_scheduler_.reset(VariationsRequestScheduler::Create(
base::Bind(&VariationsService::FetchVariationsSeed,
- base::Unretained(this)), local_state_));
+ weak_ptr_factory_.GetWeakPtr()),
+ local_state_));
request_scheduler_->Start();
}
@@ -366,13 +366,20 @@ void VariationsService::StartGoogleUpdateRegistrySync() {
}
#endif
+void VariationsService::SetRestrictMode(const std::string& restrict_mode) {
+ // This should be called before the server URL has been computed.
+ DCHECK(variations_server_url_.is_empty());
+ restrict_mode_ = restrict_mode;
+}
+
void VariationsService::SetCreateTrialsFromSeedCalledForTesting(bool called) {
create_trials_from_seed_called_ = called;
}
// static
GURL VariationsService::GetVariationsServerURL(
- PrefService* policy_pref_service) {
+ PrefService* policy_pref_service,
+ const std::string& restrict_mode_override) {
std::string server_url_string(
base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
switches::kVariationsServerURL));
@@ -380,8 +387,8 @@ GURL VariationsService::GetVariationsServerURL(
server_url_string = kDefaultVariationsServerURL;
GURL server_url = GURL(server_url_string);
- const std::string restrict_param =
- GetRestrictParameterPref(policy_pref_service);
+ const std::string restrict_param = !restrict_mode_override.empty() ?
+ restrict_mode_override : GetRestrictParameterPref(policy_pref_service);
if (!restrict_param.empty()) {
server_url = net::AppendOrReplaceQueryParameter(server_url,
"restrict",

Powered by Google App Engine
This is Rietveld 408576698