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 |