Index: chrome/browser/sync/profile_sync_factory.h |
diff --git a/chrome/browser/sync/profile_sync_factory.h b/chrome/browser/sync/profile_sync_factory.h |
index 5b652b0630886f9e1aac386e842b369d727d0c56..35b97d5d386ffa200f8b0fee734c4d664cd03046 100644 |
--- a/chrome/browser/sync/profile_sync_factory.h |
+++ b/chrome/browser/sync/profile_sync_factory.h |
@@ -19,11 +19,14 @@ class ExtensionSettingsBackend; |
class PasswordStore; |
class PersonalDataManager; |
class ProfileSyncService; |
+class SyncableService; |
class WebDatabase; |
class WebDataService; |
namespace browser_sync { |
class DataTypeManager; |
+class GenericChangeProcessor; |
+class SharedChangeProcessor; |
class SyncBackendHost; |
class UnrecoverableErrorHandler; |
} |
@@ -39,6 +42,13 @@ class ProfileSyncFactory { |
// and change processors all return this struct. This is needed |
// because the change processors typically require a type-specific |
// model associator at construction time. |
+ // Note: this interface is deprecated in favor of the SyncableService API. |
+ // New datatypes that do not live on the UI thread should directly return a |
+ // weak pointer to a SyncableService. All others continue to return |
+ // SyncComponents. It is safe to assume that the factory methods below are |
+ // called on the same thread in which the datatype resides. |
+ // TODO(zea): Have all datatypes using the new API switch to returning |
+ // SyncableService weak pointers instead of SyncComponents. |
struct SyncComponents { |
browser_sync::AssociatorInterface* model_associator; |
browser_sync::ChangeProcessor* change_processor; |
@@ -65,6 +75,14 @@ class ProfileSyncFactory { |
browser_sync::SyncBackendHost* backend, |
const browser_sync::DataTypeController::TypeMap* controllers) = 0; |
+ virtual browser_sync::GenericChangeProcessor* CreateGenericChangeProcessor( |
+ ProfileSyncService* profile_sync_service, |
+ browser_sync::UnrecoverableErrorHandler* error_handler, |
+ const base::WeakPtr<SyncableService>& local_service) = 0; |
+ |
+ virtual browser_sync::SharedChangeProcessor* |
+ CreateSharedChangeProcessor() = 0; |
+ |
// Instantiates both a model associator and change processor for the |
// app data type. The pointers in the return struct are |
// owned by the caller. |
@@ -80,13 +98,11 @@ class ProfileSyncFactory { |
WebDatabase* web_database, |
browser_sync::UnrecoverableErrorHandler* error_handler) = 0; |
- // Instantiates both a model associator and change processor for the |
- // autofill data type. The pointers in the return struct are owned |
- // by the caller. |
- virtual SyncComponents CreateAutofillProfileSyncComponents( |
- ProfileSyncService* profile_sync_service, |
- WebDataService* web_data_service, |
- browser_sync::UnrecoverableErrorHandler* error_handler) = 0; |
+ // Returns a weak pointer to the SyncableService associated with the datatype. |
+ // The SyncableService is not owned by Sync, but by the backend service |
+ // itself. |
+ virtual base::WeakPtr<SyncableService> GetAutofillProfileSyncableService( |
+ WebDataService* web_data_service) = 0; |
// Instantiates both a model associator and change processor for the |
// bookmark data type. The pointers in the return struct are owned |