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

Unified Diff: chrome/browser/metrics/variations_service.h

Issue 10790116: Have the VariationsService attempt to fetch the seed when an update is ready. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Unit test Created 8 years, 5 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_service.h
diff --git a/chrome/browser/metrics/variations_service.h b/chrome/browser/metrics/variations_service.h
index a431a6dd1498625bf167cd921b22b90428d064bb..ae465e6a6c42e8e3b9d01ac097257f9ea4c77bab 100644
--- a/chrome/browser/metrics/variations_service.h
+++ b/chrome/browser/metrics/variations_service.h
@@ -16,6 +16,8 @@
#include "chrome/browser/metrics/proto/study.pb.h"
#include "chrome/browser/metrics/proto/trials_seed.pb.h"
#include "chrome/common/chrome_version_info.h"
+#include "content/public/browser/notification_observer.h"
+#include "content/public/browser/notification_registrar.h"
#include "googleurl/src/gurl.h"
#include "net/url_request/url_fetcher_delegate.h"
@@ -29,7 +31,8 @@ namespace chrome_variations {
// Used to setup field trials based on stored variations seed data, and fetch
// new seed data from the variations server.
-class VariationsService : public net::URLFetcherDelegate {
+class VariationsService : public net::URLFetcherDelegate,
+ public content::NotificationObserver {
public:
VariationsService();
virtual ~VariationsService();
@@ -43,16 +46,20 @@ class VariationsService : public net::URLFetcherDelegate {
// implementation for details on the period.
void StartRepeatedVariationsSeedFetch();
- // Starts the fetching process once, where |OnURLFetchComplete| is called with
- // the response.
- void FetchVariationsSeed();
-
- // net::URLFetcherDelegate implementation:
- virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE;
-
// Register Variations related prefs in Local State.
static void RegisterPrefs(PrefService* prefs);
+ protected:
+ // Starts the fetching process once, where |OnURLFetchComplete| is called with
+ // the response. This is protected so we can override this for testing
+ // purposes.
+ virtual void FetchVariationsSeed();
+
+ // Overridden from content::NotificationObserver:
+ virtual void Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) OVERRIDE;
+
private:
FRIEND_TEST_ALL_PREFIXES(VariationsServiceTest, CheckStudyChannel);
FRIEND_TEST_ALL_PREFIXES(VariationsServiceTest, CheckStudyLocale);
@@ -65,6 +72,9 @@ class VariationsService : public net::URLFetcherDelegate {
FRIEND_TEST_ALL_PREFIXES(VariationsServiceTest, StoreSeed);
FRIEND_TEST_ALL_PREFIXES(VariationsServiceTest, ValidateStudy);
+ // net::URLFetcherDelegate implementation:
Alexei Svitkine (slow) 2012/07/23 20:26:05 Nit: Change this comment to have the same style as
SteveT 2012/07/24 14:42:58 Done.
+ virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE;
+
// Store the given seed data to the given local prefs. Note that |seed_data|
// is assumed to be the raw serialized protobuf data stored in a string. It
// will be Base64Encoded for storage. If the string is invalid or the encoding
@@ -131,6 +141,9 @@ class VariationsService : public net::URLFetcherDelegate {
// member so if VariationsService goes out of scope, the timer is
// automatically cancelled.
base::RepeatingTimer<VariationsService> timer_;
+
+ // The registrar used to manage our Notification registrations.
+ content::NotificationRegistrar registrar_;
};
} // namespace chrome_variations
« no previous file with comments | « no previous file | chrome/browser/metrics/variations_service.cc » ('j') | chrome/browser/metrics/variations_service.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698