OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/sync/driver/async_directory_type_controller.h" | 5 #include "components/sync/driver/async_directory_type_controller.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 if (!model_load_callback_.is_null()) { | 221 if (!model_load_callback_.is_null()) { |
222 model_load_callback_.Run(type(), error); | 222 model_load_callback_.Run(type(), error); |
223 } | 223 } |
224 } | 224 } |
225 | 225 |
226 bool AsyncDirectoryTypeController::StartAssociationAsync() { | 226 bool AsyncDirectoryTypeController::StartAssociationAsync() { |
227 DCHECK(CalledOnValidThread()); | 227 DCHECK(CalledOnValidThread()); |
228 DCHECK_EQ(state(), ASSOCIATING); | 228 DCHECK_EQ(state(), ASSOCIATING); |
229 return PostTaskOnModelThread( | 229 return PostTaskOnModelThread( |
230 FROM_HERE, | 230 FROM_HERE, |
| 231 // TODO(skym): Sending a non-owning SyncApiComponentFactory pointer across |
| 232 // threads is less than ideal. Likely safe because of the locking and |
| 233 // disconnect flag in SharedChangeProcessor. This object is only ever used |
| 234 // for dead attachments code anyways. |
231 base::Bind( | 235 base::Bind( |
232 &SharedChangeProcessor::StartAssociation, shared_change_processor_, | 236 &SharedChangeProcessor::StartAssociation, shared_change_processor_, |
233 BindToCurrentThread(base::Bind( | 237 BindToCurrentThread(base::Bind( |
234 &AsyncDirectoryTypeController::StartDone, base::AsWeakPtr(this))), | 238 &AsyncDirectoryTypeController::StartDone, base::AsWeakPtr(this))), |
235 sync_client_, processor_factory_.get(), user_share_, | 239 sync_client_->GetSyncableServiceForType(type()), |
236 base::Passed(CreateErrorHandler()))); | 240 sync_client_->GetSyncApiComponentFactory(), processor_factory_.get(), |
| 241 user_share_, base::Passed(CreateErrorHandler()))); |
237 } | 242 } |
238 | 243 |
239 ChangeProcessor* AsyncDirectoryTypeController::GetChangeProcessor() const { | 244 ChangeProcessor* AsyncDirectoryTypeController::GetChangeProcessor() const { |
240 DCHECK(CalledOnValidThread()); | 245 DCHECK(CalledOnValidThread()); |
241 DCHECK_EQ(state_, RUNNING); | 246 DCHECK_EQ(state_, RUNNING); |
242 return shared_change_processor_->generic_change_processor(); | 247 return shared_change_processor_->generic_change_processor(); |
243 } | 248 } |
244 | 249 |
245 void AsyncDirectoryTypeController::DisconnectSharedChangeProcessor() { | 250 void AsyncDirectoryTypeController::DisconnectSharedChangeProcessor() { |
246 DCHECK(CalledOnValidThread()); | 251 DCHECK(CalledOnValidThread()); |
(...skipping 16 matching lines...) Expand all Loading... |
263 std::unique_ptr<DataTypeErrorHandler> | 268 std::unique_ptr<DataTypeErrorHandler> |
264 AsyncDirectoryTypeController::CreateErrorHandler() { | 269 AsyncDirectoryTypeController::CreateErrorHandler() { |
265 DCHECK(CalledOnValidThread()); | 270 DCHECK(CalledOnValidThread()); |
266 return base::MakeUnique<DataTypeErrorHandlerImpl>( | 271 return base::MakeUnique<DataTypeErrorHandlerImpl>( |
267 base::ThreadTaskRunnerHandle::Get(), dump_stack_, | 272 base::ThreadTaskRunnerHandle::Get(), dump_stack_, |
268 base::Bind(&AsyncDirectoryTypeController::DisableImpl, | 273 base::Bind(&AsyncDirectoryTypeController::DisableImpl, |
269 base::AsWeakPtr(this))); | 274 base::AsWeakPtr(this))); |
270 } | 275 } |
271 | 276 |
272 } // namespace syncer | 277 } // namespace syncer |
OLD | NEW |