summaryrefslogtreecommitdiffstats
path: root/components/sync_driver
diff options
context:
space:
mode:
authortim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-14 08:40:00 +0000
committertim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-14 08:40:00 +0000
commit59f9fd37bd451f7eeed24919a7fe060f2d39cb54 (patch)
tree8378821fe1b1facaf9930d54c2978d6ec60cfa95 /components/sync_driver
parentcdec3d6beb6ab013654941f0a29ec5788f08644f (diff)
downloadchromium_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.cc12
-rw-r--r--components/sync_driver/data_type_controller.h10
-rw-r--r--components/sync_driver/fake_data_type_controller.cc3
-rw-r--r--components/sync_driver/proxy_data_type_controller.cc2
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_));