| 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 7b13b10c715c0daae820451e5af81ced88d05621..9c01b85e0dfbef585cc8fe8c377ee4fc1ce96f31 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.
|
| //
|
| @@ -920,6 +930,9 @@ class ProfileSyncService : public ProfileSyncServiceBase,
|
| // want to startup once more.
|
| virtual void ReconfigureDatatypeManager();
|
|
|
| + // Collects preferred sync data types from |preference_providers_|.
|
| + syncer::ModelTypeSet GetDataTypesFromPreferenceProviders();
|
| +
|
| // Called when the user changes the sync configuration, to update the UMA
|
| // stats.
|
| void UpdateSelectedTypesHistogram(
|
| @@ -1024,6 +1037,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
|
|
|