diff options
author | tim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-14 08:40:00 +0000 |
---|---|---|
committer | tim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-14 08:40:00 +0000 |
commit | 59f9fd37bd451f7eeed24919a7fe060f2d39cb54 (patch) | |
tree | 8378821fe1b1facaf9930d54c2978d6ec60cfa95 /components/sync_driver | |
parent | cdec3d6beb6ab013654941f0a29ec5788f08644f (diff) | |
download | chromium_src-59f9fd37bd451f7eeed24919a7fe060f2d39cb54.zip chromium_src-59f9fd37bd451f7eeed24919a7fe060f2d39cb54.tar.gz chromium_src-59f9fd37bd451f7eeed24919a7fe060f2d39cb54.tar.bz2 |
sync: kill ProfileSyncService dependency from [Non]UIDataTypeControllers.
BUG=339726
Review URL: https://codereview.chromium.org/330023005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277207 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/sync_driver')
-rw-r--r-- | components/sync_driver/data_type_controller.cc | 12 | ||||
-rw-r--r-- | components/sync_driver/data_type_controller.h | 10 | ||||
-rw-r--r-- | components/sync_driver/fake_data_type_controller.cc | 3 | ||||
-rw-r--r-- | components/sync_driver/proxy_data_type_controller.cc | 2 |
4 files changed, 22 insertions, 5 deletions
diff --git a/components/sync_driver/data_type_controller.cc b/components/sync_driver/data_type_controller.cc index d55639c..3514a16 100644 --- a/components/sync_driver/data_type_controller.cc +++ b/components/sync_driver/data_type_controller.cc @@ -12,9 +12,12 @@ namespace browser_sync { DataTypeController::DataTypeController( scoped_refptr<base::MessageLoopProxy> ui_thread, - const base::Closure& error_callback) + const base::Closure& error_callback, + const DisableTypeCallback& disable_callback) : base::RefCountedDeleteOnMessageLoop<DataTypeController>(ui_thread), - error_callback_(error_callback), user_share_(NULL) { + error_callback_(error_callback), + disable_callback_(disable_callback), + user_share_(NULL) { } DataTypeController::~DataTypeController() { @@ -48,4 +51,9 @@ syncer::UserShare* DataTypeController::user_share() const { return user_share_; } +DataTypeController::DisableTypeCallback +DataTypeController::disable_callback() { + return disable_callback_; +} + } // namespace browser_sync diff --git a/components/sync_driver/data_type_controller.h b/components/sync_driver/data_type_controller.h index 84faf9a..be6e65a9 100644 --- a/components/sync_driver/data_type_controller.h +++ b/components/sync_driver/data_type_controller.h @@ -71,6 +71,9 @@ class DataTypeController typedef base::Callback<void(syncer::ModelType, syncer::SyncError)> ModelLoadCallback; + typedef base::Callback<void(const tracked_objects::Location& location, + const std::string&)> DisableTypeCallback; + typedef std::map<syncer::ModelType, scoped_refptr<DataTypeController> > TypeMap; typedef std::map<syncer::ModelType, DataTypeController::State> StateMap; @@ -138,7 +141,8 @@ class DataTypeController friend class base::DeleteHelper<DataTypeController>; DataTypeController(scoped_refptr<base::MessageLoopProxy> ui_thread, - const base::Closure& error_callback); + const base::Closure& error_callback, + const DisableTypeCallback& disable_callback); // If the DTC is waiting for models to load, once the models are // loaded the datatype service will call this function on DTC to let @@ -148,12 +152,16 @@ class DataTypeController virtual ~DataTypeController(); syncer::UserShare* user_share() const; + DisableTypeCallback disable_callback(); // The callback that will be invoked when an unrecoverable error occurs. // TODO(sync): protected for use by legacy controllers. base::Closure error_callback_; private: + // TODO(tim): Bug 383480. Do we need two callbacks? + DisableTypeCallback disable_callback_; + syncer::UserShare* user_share_; }; diff --git a/components/sync_driver/fake_data_type_controller.cc b/components/sync_driver/fake_data_type_controller.cc index 3c50701..23dc7f4 100644 --- a/components/sync_driver/fake_data_type_controller.cc +++ b/components/sync_driver/fake_data_type_controller.cc @@ -11,7 +11,8 @@ using syncer::ModelType; namespace browser_sync { FakeDataTypeController::FakeDataTypeController(ModelType type) - : DataTypeController(base::MessageLoopProxy::current(), base::Closure()), + : DataTypeController(base::MessageLoopProxy::current(), base::Closure(), + DisableTypeCallback()), state_(NOT_RUNNING), model_load_delayed_(false), type_(type) {} diff --git a/components/sync_driver/proxy_data_type_controller.cc b/components/sync_driver/proxy_data_type_controller.cc index 918617a..22344a6 100644 --- a/components/sync_driver/proxy_data_type_controller.cc +++ b/components/sync_driver/proxy_data_type_controller.cc @@ -9,7 +9,7 @@ namespace browser_sync { ProxyDataTypeController::ProxyDataTypeController( scoped_refptr<base::MessageLoopProxy> ui_thread, syncer::ModelType type) - : DataTypeController(ui_thread, base::Closure()), + : DataTypeController(ui_thread, base::Closure(), DisableTypeCallback()), state_(NOT_RUNNING), type_(type) { DCHECK(syncer::ProxyTypes().Has(type_)); |