Index: chrome/browser/sync/glue/preference_data_type_controller.cc |
diff --git a/chrome/browser/sync/glue/preference_data_type_controller.cc b/chrome/browser/sync/glue/preference_data_type_controller.cc |
index 3331bd34089ed760088e0c4e7d670cbd37426ae3..5285b92419472db8153398bd3c7a5e3d211c3c44 100644 |
--- a/chrome/browser/sync/glue/preference_data_type_controller.cc |
+++ b/chrome/browser/sync/glue/preference_data_type_controller.cc |
@@ -5,7 +5,11 @@ |
#include "chrome/browser/sync/glue/preference_data_type_controller.h" |
#include "base/metrics/histogram.h" |
+#include "chrome/browser/prefs/pref_service.h" |
+#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/sync/glue/generic_change_processor.h" |
#include "chrome/browser/sync/profile_sync_factory.h" |
+#include "chrome/browser/sync/syncable_service.h" |
namespace browser_sync { |
@@ -15,20 +19,36 @@ PreferenceDataTypeController::PreferenceDataTypeController( |
ProfileSyncService* sync_service) |
: FrontendDataTypeController(profile_sync_factory, |
profile, |
- sync_service) { |
+ sync_service), |
+ pref_sync_service_(NULL) { |
} |
-PreferenceDataTypeController::~PreferenceDataTypeController() {} |
+PreferenceDataTypeController::~PreferenceDataTypeController() { |
+ pref_sync_service_ = NULL; |
+} |
syncable::ModelType PreferenceDataTypeController::type() const { |
return syncable::PREFERENCES; |
} |
void PreferenceDataTypeController::CreateSyncComponents() { |
- ProfileSyncFactory::SyncComponents sync_components = profile_sync_factory_-> |
- CreatePreferenceSyncComponents(sync_service_, this); |
- model_associator_.reset(sync_components.model_associator); |
- change_processor_.reset(sync_components.change_processor); |
+ ProfileSyncFactory::SyncComponents sync_components = |
+ profile_sync_factory_->CreatePreferenceSyncComponents(sync_service_, |
+ this); |
+ set_model_associator(sync_components.model_associator); |
+ set_change_processor(sync_components.change_processor); |
+ reinterpret_cast<SyncableService*>(model_associator())-> |
+ SetupSync(sync_service_, |
+ reinterpret_cast<GenericChangeProcessor*>(change_processor())); |
+} |
+ |
+AssociatorInterface* PreferenceDataTypeController::model_associator() const { |
+ return pref_sync_service_; |
+} |
+ |
+void PreferenceDataTypeController::set_model_associator( |
+ AssociatorInterface* associator) { |
+ pref_sync_service_ = associator; |
} |
void PreferenceDataTypeController::RecordUnrecoverableError( |