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

Side by Side Diff: chrome/browser/metrics/variations/variations_service.h

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, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_SERVICE_H_ 5 #ifndef CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_SERVICE_H_
6 #define CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_SERVICE_H_ 6 #define CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_SERVICE_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 // TODO(rkaplow): Handle this and the similar event in metrics_service by 95 // TODO(rkaplow): Handle this and the similar event in metrics_service by
96 // observing an 'OnAppEnterForeground' event instead of requiring the frontend 96 // observing an 'OnAppEnterForeground' event instead of requiring the frontend
97 // code to notify each service individually. 97 // code to notify each service individually.
98 void OnAppEnterForeground(); 98 void OnAppEnterForeground();
99 99
100 #if defined(OS_WIN) 100 #if defined(OS_WIN)
101 // Starts syncing Google Update Variation IDs with the registry. 101 // Starts syncing Google Update Variation IDs with the registry.
102 void StartGoogleUpdateRegistrySync(); 102 void StartGoogleUpdateRegistrySync();
103 #endif 103 #endif
104 104
105 // Sets the value of the "restrict" URL param to the variations service that
106 // should be used for variation seed requests. This takes precedence over any
107 // value coming from policy prefs. This should be called prior to any calls
108 // to |StartRepeatedVariationsSeedFetch|.
109 void SetRestrictMode(const std::string& restrict_mode);
110
105 // Exposed for testing. 111 // Exposed for testing.
106 void SetCreateTrialsFromSeedCalledForTesting(bool called); 112 void SetCreateTrialsFromSeedCalledForTesting(bool called);
107 113
108 // Returns the variations server URL, which can vary if a command-line flag is 114 // Returns the variations server URL, which can vary if a command-line flag is
109 // set and/or the variations restrict pref is set in |local_prefs|. Declared 115 // set and/or the variations restrict pref is set in |local_prefs|. Declared
110 // static for test purposes. 116 // static for test purposes.
111 static GURL GetVariationsServerURL(PrefService* local_prefs); 117 static GURL GetVariationsServerURL(PrefService* local_prefs,
118 const std::string& restrict_mode_override);
112 119
113 // Exposed for testing. 120 // Exposed for testing.
114 static std::string GetDefaultVariationsServerURLForTesting(); 121 static std::string GetDefaultVariationsServerURLForTesting();
115 122
116 // Register Variations related prefs in Local State. 123 // Register Variations related prefs in Local State.
117 static void RegisterPrefs(PrefRegistrySimple* registry); 124 static void RegisterPrefs(PrefRegistrySimple* registry);
118 125
119 // Register Variations related prefs in the Profile prefs. 126 // Register Variations related prefs in the Profile prefs.
120 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); 127 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
121 128
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 208
202 // Contains the scheduler instance that handles timing for requests to the 209 // Contains the scheduler instance that handles timing for requests to the
203 // server. Initially NULL and instantiated when the initial fetch is 210 // server. Initially NULL and instantiated when the initial fetch is
204 // requested. 211 // requested.
205 scoped_ptr<VariationsRequestScheduler> request_scheduler_; 212 scoped_ptr<VariationsRequestScheduler> request_scheduler_;
206 213
207 // Contains the current seed request. Will only have a value while a request 214 // Contains the current seed request. Will only have a value while a request
208 // is pending, and will be reset by |OnURLFetchComplete|. 215 // is pending, and will be reset by |OnURLFetchComplete|.
209 scoped_ptr<net::URLFetcher> pending_seed_request_; 216 scoped_ptr<net::URLFetcher> pending_seed_request_;
210 217
211 // The URL to use for querying the Variations server. 218 // The value of the "restrict" URL param to the variations server that has
219 // been specified via |SetRestrictMode|. If empty, the URL param will be set
220 // based on policy prefs.
221 std::string restrict_mode_;
222
223 // The URL to use for querying the variations server.
212 GURL variations_server_url_; 224 GURL variations_server_url_;
213 225
214 // Tracks whether |CreateTrialsFromSeed| has been called, to ensure that 226 // Tracks whether |CreateTrialsFromSeed| has been called, to ensure that
215 // it gets called prior to |StartRepeatedVariationsSeedFetch|. 227 // it gets called prior to |StartRepeatedVariationsSeedFetch|.
216 bool create_trials_from_seed_called_; 228 bool create_trials_from_seed_called_;
217 229
218 // Tracks whether the initial request to the variations server had completed. 230 // Tracks whether the initial request to the variations server had completed.
219 bool initial_request_completed_; 231 bool initial_request_completed_;
220 232
221 // Helper class used to tell this service if it's allowed to make network 233 // Helper class used to tell this service if it's allowed to make network
(...skipping 14 matching lines...) Expand all
236 #endif 248 #endif
237 249
238 base::WeakPtrFactory<VariationsService> weak_ptr_factory_; 250 base::WeakPtrFactory<VariationsService> weak_ptr_factory_;
239 251
240 DISALLOW_COPY_AND_ASSIGN(VariationsService); 252 DISALLOW_COPY_AND_ASSIGN(VariationsService);
241 }; 253 };
242 254
243 } // namespace chrome_variations 255 } // namespace chrome_variations
244 256
245 #endif // CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_SERVICE_H_ 257 #endif // CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698