| 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 |