OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/sync_file_system/drive_backend/sync_engine.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h" |
6 | 6 |
| 7 #include <utility> |
7 #include <vector> | 8 #include <vector> |
8 | 9 |
9 #include "base/bind.h" | 10 #include "base/bind.h" |
10 #include "base/macros.h" | 11 #include "base/macros.h" |
11 #include "base/metrics/histogram.h" | 12 #include "base/metrics/histogram.h" |
12 #include "base/thread_task_runner_handle.h" | 13 #include "base/thread_task_runner_handle.h" |
13 #include "base/threading/sequenced_worker_pool.h" | 14 #include "base/threading/sequenced_worker_pool.h" |
14 #include "base/time/time.h" | 15 #include "base/time/time.h" |
15 #include "base/values.h" | 16 #include "base/values.h" |
16 #include "chrome/browser/drive/drive_notification_manager_factory.h" | 17 #include "chrome/browser/drive/drive_notification_manager_factory.h" |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 task_logger, | 208 task_logger, |
208 notification_manager, | 209 notification_manager, |
209 extension_service, | 210 extension_service, |
210 signin_manager, | 211 signin_manager, |
211 token_service, | 212 token_service, |
212 request_context.get(), | 213 request_context.get(), |
213 make_scoped_ptr(new DriveServiceFactory()), | 214 make_scoped_ptr(new DriveServiceFactory()), |
214 nullptr /* env_override */)); | 215 nullptr /* env_override */)); |
215 | 216 |
216 sync_engine->Initialize(); | 217 sync_engine->Initialize(); |
217 return sync_engine.Pass(); | 218 return sync_engine; |
218 } | 219 } |
219 | 220 |
220 void SyncEngine::AppendDependsOnFactories( | 221 void SyncEngine::AppendDependsOnFactories( |
221 std::set<BrowserContextKeyedServiceFactory*>* factories) { | 222 std::set<BrowserContextKeyedServiceFactory*>* factories) { |
222 DCHECK(factories); | 223 DCHECK(factories); |
223 factories->insert(drive::DriveNotificationManagerFactory::GetInstance()); | 224 factories->insert(drive::DriveNotificationManagerFactory::GetInstance()); |
224 factories->insert(SigninManagerFactory::GetInstance()); | 225 factories->insert(SigninManagerFactory::GetInstance()); |
225 factories->insert( | 226 factories->insert( |
226 extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); | 227 extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); |
227 factories->insert(ProfileOAuth2TokenServiceFactory::GetInstance()); | 228 factories->insert(ProfileOAuth2TokenServiceFactory::GetInstance()); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
260 if (!signin_manager_ || !signin_manager_->IsAuthenticated()) | 261 if (!signin_manager_ || !signin_manager_->IsAuthenticated()) |
261 return; | 262 return; |
262 | 263 |
263 DCHECK(drive_service_factory_); | 264 DCHECK(drive_service_factory_); |
264 scoped_ptr<drive::DriveServiceInterface> drive_service = | 265 scoped_ptr<drive::DriveServiceInterface> drive_service = |
265 drive_service_factory_->CreateDriveService( | 266 drive_service_factory_->CreateDriveService( |
266 token_service_, request_context_.get(), drive_task_runner_.get()); | 267 token_service_, request_context_.get(), drive_task_runner_.get()); |
267 scoped_ptr<drive::DriveUploaderInterface> drive_uploader( | 268 scoped_ptr<drive::DriveUploaderInterface> drive_uploader( |
268 new drive::DriveUploader(drive_service.get(), drive_task_runner_.get())); | 269 new drive::DriveUploader(drive_service.get(), drive_task_runner_.get())); |
269 | 270 |
270 InitializeInternal(drive_service.Pass(), drive_uploader.Pass(), nullptr); | 271 InitializeInternal(std::move(drive_service), std::move(drive_uploader), |
| 272 nullptr); |
271 } | 273 } |
272 | 274 |
273 void SyncEngine::InitializeForTesting( | 275 void SyncEngine::InitializeForTesting( |
274 scoped_ptr<drive::DriveServiceInterface> drive_service, | 276 scoped_ptr<drive::DriveServiceInterface> drive_service, |
275 scoped_ptr<drive::DriveUploaderInterface> drive_uploader, | 277 scoped_ptr<drive::DriveUploaderInterface> drive_uploader, |
276 scoped_ptr<SyncWorkerInterface> sync_worker) { | 278 scoped_ptr<SyncWorkerInterface> sync_worker) { |
277 Reset(); | 279 Reset(); |
278 InitializeInternal(drive_service.Pass(), drive_uploader.Pass(), | 280 InitializeInternal(std::move(drive_service), std::move(drive_uploader), |
279 sync_worker.Pass()); | 281 std::move(sync_worker)); |
280 } | 282 } |
281 | 283 |
282 void SyncEngine::InitializeInternal( | 284 void SyncEngine::InitializeInternal( |
283 scoped_ptr<drive::DriveServiceInterface> drive_service, | 285 scoped_ptr<drive::DriveServiceInterface> drive_service, |
284 scoped_ptr<drive::DriveUploaderInterface> drive_uploader, | 286 scoped_ptr<drive::DriveUploaderInterface> drive_uploader, |
285 scoped_ptr<SyncWorkerInterface> sync_worker) { | 287 scoped_ptr<SyncWorkerInterface> sync_worker) { |
286 drive_service_ = drive_service.Pass(); | 288 drive_service_ = std::move(drive_service); |
287 drive_service_wrapper_.reset(new DriveServiceWrapper(drive_service_.get())); | 289 drive_service_wrapper_.reset(new DriveServiceWrapper(drive_service_.get())); |
288 | 290 |
289 std::string account_id; | 291 std::string account_id; |
290 if (signin_manager_) | 292 if (signin_manager_) |
291 account_id = signin_manager_->GetAuthenticatedAccountId(); | 293 account_id = signin_manager_->GetAuthenticatedAccountId(); |
292 drive_service_->Initialize(account_id); | 294 drive_service_->Initialize(account_id); |
293 | 295 |
294 drive_uploader_ = drive_uploader.Pass(); | 296 drive_uploader_ = std::move(drive_uploader); |
295 drive_uploader_wrapper_.reset( | 297 drive_uploader_wrapper_.reset( |
296 new DriveUploaderWrapper(drive_uploader_.get())); | 298 new DriveUploaderWrapper(drive_uploader_.get())); |
297 | 299 |
298 // DriveServiceWrapper and DriveServiceOnWorker relay communications | 300 // DriveServiceWrapper and DriveServiceOnWorker relay communications |
299 // between DriveService and syncers in SyncWorker. | 301 // between DriveService and syncers in SyncWorker. |
300 scoped_ptr<drive::DriveServiceInterface> drive_service_on_worker( | 302 scoped_ptr<drive::DriveServiceInterface> drive_service_on_worker( |
301 new DriveServiceOnWorker(drive_service_wrapper_->AsWeakPtr(), | 303 new DriveServiceOnWorker(drive_service_wrapper_->AsWeakPtr(), |
302 ui_task_runner_.get(), | 304 ui_task_runner_.get(), |
303 worker_task_runner_.get())); | 305 worker_task_runner_.get())); |
304 scoped_ptr<drive::DriveUploaderInterface> drive_uploader_on_worker( | 306 scoped_ptr<drive::DriveUploaderInterface> drive_uploader_on_worker( |
305 new DriveUploaderOnWorker(drive_uploader_wrapper_->AsWeakPtr(), | 307 new DriveUploaderOnWorker(drive_uploader_wrapper_->AsWeakPtr(), |
306 ui_task_runner_.get(), | 308 ui_task_runner_.get(), |
307 worker_task_runner_.get())); | 309 worker_task_runner_.get())); |
308 scoped_ptr<SyncEngineContext> sync_engine_context( | 310 scoped_ptr<SyncEngineContext> sync_engine_context(new SyncEngineContext( |
309 new SyncEngineContext(drive_service_on_worker.Pass(), | 311 std::move(drive_service_on_worker), std::move(drive_uploader_on_worker), |
310 drive_uploader_on_worker.Pass(), | 312 task_logger_, ui_task_runner_.get(), worker_task_runner_.get(), |
311 task_logger_, | 313 worker_pool_.get())); |
312 ui_task_runner_.get(), | |
313 worker_task_runner_.get(), | |
314 worker_pool_.get())); | |
315 | 314 |
316 worker_observer_.reset(new WorkerObserver(ui_task_runner_.get(), | 315 worker_observer_.reset(new WorkerObserver(ui_task_runner_.get(), |
317 weak_ptr_factory_.GetWeakPtr())); | 316 weak_ptr_factory_.GetWeakPtr())); |
318 | 317 |
319 base::WeakPtr<ExtensionServiceInterface> extension_service_weak_ptr; | 318 base::WeakPtr<ExtensionServiceInterface> extension_service_weak_ptr; |
320 if (extension_service_) | 319 if (extension_service_) |
321 extension_service_weak_ptr = extension_service_->AsWeakPtr(); | 320 extension_service_weak_ptr = extension_service_->AsWeakPtr(); |
322 | 321 |
323 if (!sync_worker) { | 322 if (!sync_worker) { |
324 sync_worker.reset(new SyncWorker( | 323 sync_worker.reset(new SyncWorker( |
325 sync_file_system_dir_, | 324 sync_file_system_dir_, |
326 extension_service_weak_ptr, | 325 extension_service_weak_ptr, |
327 env_override_)); | 326 env_override_)); |
328 } | 327 } |
329 | 328 |
330 sync_worker_ = sync_worker.Pass(); | 329 sync_worker_ = std::move(sync_worker); |
331 sync_worker_->AddObserver(worker_observer_.get()); | 330 sync_worker_->AddObserver(worker_observer_.get()); |
332 | 331 |
333 worker_task_runner_->PostTask( | 332 worker_task_runner_->PostTask( |
334 FROM_HERE, | 333 FROM_HERE, |
335 base::Bind(&SyncWorkerInterface::Initialize, | 334 base::Bind(&SyncWorkerInterface::Initialize, |
336 base::Unretained(sync_worker_.get()), | 335 base::Unretained(sync_worker_.get()), |
337 base::Passed(&sync_engine_context))); | 336 base::Passed(&sync_engine_context))); |
338 if (remote_change_processor_) | 337 if (remote_change_processor_) |
339 SetRemoteChangeProcessor(remote_change_processor_); | 338 SetRemoteChangeProcessor(remote_change_processor_); |
340 | 339 |
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
735 worker_task_runner_(worker_task_runner), | 734 worker_task_runner_(worker_task_runner), |
736 drive_task_runner_(drive_task_runner), | 735 drive_task_runner_(drive_task_runner), |
737 worker_pool_(worker_pool), | 736 worker_pool_(worker_pool), |
738 sync_file_system_dir_(sync_file_system_dir), | 737 sync_file_system_dir_(sync_file_system_dir), |
739 task_logger_(task_logger), | 738 task_logger_(task_logger), |
740 notification_manager_(notification_manager), | 739 notification_manager_(notification_manager), |
741 extension_service_(extension_service), | 740 extension_service_(extension_service), |
742 signin_manager_(signin_manager), | 741 signin_manager_(signin_manager), |
743 token_service_(token_service), | 742 token_service_(token_service), |
744 request_context_(request_context), | 743 request_context_(request_context), |
745 drive_service_factory_(drive_service_factory.Pass()), | 744 drive_service_factory_(std::move(drive_service_factory)), |
746 remote_change_processor_(nullptr), | 745 remote_change_processor_(nullptr), |
747 service_state_(REMOTE_SERVICE_TEMPORARY_UNAVAILABLE), | 746 service_state_(REMOTE_SERVICE_TEMPORARY_UNAVAILABLE), |
748 has_refresh_token_(false), | 747 has_refresh_token_(false), |
749 network_available_(false), | 748 network_available_(false), |
750 sync_enabled_(false), | 749 sync_enabled_(false), |
751 env_override_(env_override), | 750 env_override_(env_override), |
752 weak_ptr_factory_(this) { | 751 weak_ptr_factory_(this) { |
753 DCHECK(sync_file_system_dir_.IsAbsolute()); | 752 DCHECK(sync_file_system_dir_.IsAbsolute()); |
754 if (notification_manager_) | 753 if (notification_manager_) |
755 notification_manager_->AddObserver(this); | 754 notification_manager_->AddObserver(this); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
787 | 786 |
788 SyncStatusCallback SyncEngine::TrackCallback( | 787 SyncStatusCallback SyncEngine::TrackCallback( |
789 const SyncStatusCallback& callback) { | 788 const SyncStatusCallback& callback) { |
790 return callback_tracker_.Register( | 789 return callback_tracker_.Register( |
791 base::Bind(callback, SYNC_STATUS_ABORT), | 790 base::Bind(callback, SYNC_STATUS_ABORT), |
792 callback); | 791 callback); |
793 } | 792 } |
794 | 793 |
795 } // namespace drive_backend | 794 } // namespace drive_backend |
796 } // namespace sync_file_system | 795 } // namespace sync_file_system |
OLD | NEW |