| Index: chrome/browser/sync/glue/fake_data_type_controller.cc
|
| diff --git a/chrome/browser/sync/glue/fake_data_type_controller.cc b/chrome/browser/sync/glue/fake_data_type_controller.cc
|
| index 510d8ec41d625d606ffeede12ed21884495dc8d8..99f538f1e72fc48982ead1f3f87afb7847f892d8 100755
|
| --- a/chrome/browser/sync/glue/fake_data_type_controller.cc
|
| +++ b/chrome/browser/sync/glue/fake_data_type_controller.cc
|
| @@ -11,20 +11,26 @@ using syncable::ModelType;
|
| namespace browser_sync {
|
|
|
| FakeDataTypeController::FakeDataTypeController(ModelType type)
|
| - : state_(NOT_RUNNING), type_(type) {}
|
| + : state_(NOT_RUNNING), model_load_delayed_(false), type_(type) {}
|
|
|
| FakeDataTypeController::~FakeDataTypeController() {
|
| }
|
|
|
| -// NOT_RUNNING ->MODEL_LOADED.
|
| +// NOT_RUNNING ->MODEL_LOADED |MODEL_STARTING.
|
| void FakeDataTypeController::LoadModels(
|
| const ModelLoadCallback& model_load_callback) {
|
| if (state_ != NOT_RUNNING) {
|
| ADD_FAILURE();
|
| return;
|
| }
|
| - model_load_callback.Run(type(), SyncError());
|
| - state_ = MODEL_LOADED;
|
| +
|
| + if (model_load_delayed_ == false) {
|
| + model_load_callback.Run(type(), SyncError());
|
| + state_ = MODEL_LOADED;
|
| + } else {
|
| + model_load_callback_ = model_load_callback;
|
| + state_ = MODEL_STARTING;
|
| + }
|
| }
|
|
|
| void FakeDataTypeController::ModelsLoaded() {
|
| @@ -35,7 +41,7 @@ void FakeDataTypeController::ModelsLoaded() {
|
| void FakeDataTypeController::StartAssociating(
|
| const StartCallback& start_callback) {
|
| last_start_callback_ = start_callback;
|
| - state_ = MODEL_STARTING;
|
| + state_ = ASSOCIATING;
|
| }
|
|
|
| // MODEL_STARTING | ASSOCIATING -> RUNNING | DISABLED | NOT_RUNNING
|
| @@ -108,5 +114,14 @@ void FakeDataTypeController::RecordUnrecoverableError(
|
| ADD_FAILURE() << message;
|
| }
|
|
|
| +void FakeDataTypeController::SetDelayModelLoad() {
|
| + model_load_delayed_ = true;
|
| +}
|
| +
|
| +void FakeDataTypeController::FinishModelLoad() {
|
| + ModelLoadCallback model_load_callback = model_load_callback_;
|
| + model_load_callback.Run(type(), SyncError());
|
| +}
|
| +
|
| } // namespace browser_sync
|
|
|
|
|