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

Unified Diff: chrome/browser/sync/profile_sync_service.h

Issue 428143002: Sync: Add a SyncTypePreferenceProvider interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 4 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/sync/profile_sync_service.h
diff --git a/chrome/browser/sync/profile_sync_service.h b/chrome/browser/sync/profile_sync_service.h
index d12a05821c052eecf6a1e5e733d0efbfed1b507b..98d325463976af248b61419fc75843c214d42241 100644
--- a/chrome/browser/sync/profile_sync_service.h
+++ b/chrome/browser/sync/profile_sync_service.h
@@ -5,9 +5,9 @@
#ifndef CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_
#define CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_H_
+#include <set>
#include <string>
#include <utility>
-#include <vector>
#include "base/basictypes.h"
#include "base/compiler_specific.h"
@@ -57,6 +57,7 @@ class ProfileOAuth2TokenService;
class ProfileSyncComponentsFactory;
class SupervisedUserSigninManagerWrapper;
class SyncErrorController;
+class SyncTypePreferenceProvider;
namespace base {
class CommandLine;
@@ -301,6 +302,15 @@ class ProfileSyncService : public ProfileSyncServiceBase,
void AddTypeDebugInfoObserver(syncer::TypeDebugInfoObserver* observer);
void RemoveTypeDebugInfoObserver(syncer::TypeDebugInfoObserver* observer);
+ // Add a sync type preference provider. Each provider may only be added once.
+ void AddPreferenceProvider(SyncTypePreferenceProvider* provider);
+ // Remove a sync type preference provider. May only be called for providers
+ // that have been added. Providers must not remove themselves while being
+ // called back.
+ void RemovePreferenceProvider(SyncTypePreferenceProvider* provider);
+ // Check whether a given sync type preference provider has been added.
+ bool HasPreferenceProvider(SyncTypePreferenceProvider* provider) const;
+
// Asynchronously fetches base::Value representations of all sync nodes and
// returns them to the specified callback on this thread.
//
@@ -915,6 +925,9 @@ class ProfileSyncService : public ProfileSyncServiceBase,
// want to startup once more.
virtual void ReconfigureDatatypeManager();
+ // Collects preferred sync data types from |preference_providers_|.
+ syncer::ModelTypeSet GetDataTypesFromPreferenceProviders() const;
+
// Called when the user changes the sync configuration, to update the UMA
// stats.
void UpdateSelectedTypesHistogram(
@@ -1019,6 +1032,8 @@ class ProfileSyncService : public ProfileSyncServiceBase,
ObserverList<browser_sync::ProtocolEventObserver> protocol_event_observers_;
ObserverList<syncer::TypeDebugInfoObserver> type_debug_info_observers_;
+ std::set<SyncTypePreferenceProvider*> preference_providers_;
+
syncer::SyncJsController sync_js_controller_;
// This allows us to gracefully handle an ABORTED return code from the

Powered by Google App Engine
This is Rietveld 408576698