| 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 "chrome/browser/sync_file_system/drive_backend/sync_worker.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/sync_worker.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 "chrome/browser/extensions/extension_service.h" | 11 #include "chrome/browser/extensions/extension_service.h" |
| 11 #include "chrome/browser/sync_file_system/drive_backend/callback_helper.h" | 12 #include "chrome/browser/sync_file_system/drive_backend/callback_helper.h" |
| 12 #include "chrome/browser/sync_file_system/drive_backend/conflict_resolver.h" | 13 #include "chrome/browser/sync_file_system/drive_backend/conflict_resolver.h" |
| 13 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.
h" | 14 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.
h" |
| 14 #include "chrome/browser/sync_file_system/drive_backend/list_changes_task.h" | 15 #include "chrome/browser/sync_file_system/drive_backend/list_changes_task.h" |
| 15 #include "chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
" | 16 #include "chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
" |
| 16 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" | 17 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 } | 63 } |
| 63 | 64 |
| 64 SyncWorker::~SyncWorker() { | 65 SyncWorker::~SyncWorker() { |
| 65 observers_.Clear(); | 66 observers_.Clear(); |
| 66 } | 67 } |
| 67 | 68 |
| 68 void SyncWorker::Initialize(scoped_ptr<SyncEngineContext> context) { | 69 void SyncWorker::Initialize(scoped_ptr<SyncEngineContext> context) { |
| 69 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 70 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| 70 DCHECK(!task_manager_); | 71 DCHECK(!task_manager_); |
| 71 | 72 |
| 72 context_ = context.Pass(); | 73 context_ = std::move(context); |
| 73 | 74 |
| 74 task_manager_.reset(new SyncTaskManager( | 75 task_manager_.reset(new SyncTaskManager( |
| 75 weak_ptr_factory_.GetWeakPtr(), 0 /* maximum_background_task */, | 76 weak_ptr_factory_.GetWeakPtr(), 0 /* maximum_background_task */, |
| 76 context_->GetWorkerTaskRunner(), | 77 context_->GetWorkerTaskRunner(), |
| 77 context_->GetWorkerPool())); | 78 context_->GetWorkerPool())); |
| 78 task_manager_->Initialize(SYNC_STATUS_OK); | 79 task_manager_->Initialize(SYNC_STATUS_OK); |
| 79 | 80 |
| 80 PostInitializeTask(); | 81 PostInitializeTask(); |
| 81 } | 82 } |
| 82 | 83 |
| 83 void SyncWorker::RegisterOrigin( | 84 void SyncWorker::RegisterOrigin( |
| 84 const GURL& origin, | 85 const GURL& origin, |
| 85 const SyncStatusCallback& callback) { | 86 const SyncStatusCallback& callback) { |
| 86 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 87 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| 87 | 88 |
| 88 if (!GetMetadataDatabase()) | 89 if (!GetMetadataDatabase()) |
| 89 PostInitializeTask(); | 90 PostInitializeTask(); |
| 90 | 91 |
| 91 scoped_ptr<RegisterAppTask> task( | 92 scoped_ptr<RegisterAppTask> task( |
| 92 new RegisterAppTask(context_.get(), origin.host())); | 93 new RegisterAppTask(context_.get(), origin.host())); |
| 93 if (task->CanFinishImmediately()) { | 94 if (task->CanFinishImmediately()) { |
| 94 callback.Run(SYNC_STATUS_OK); | 95 callback.Run(SYNC_STATUS_OK); |
| 95 return; | 96 return; |
| 96 } | 97 } |
| 97 | 98 |
| 98 task_manager_->ScheduleSyncTask( | 99 task_manager_->ScheduleSyncTask(FROM_HERE, std::move(task), |
| 99 FROM_HERE, task.Pass(), SyncTaskManager::PRIORITY_HIGH, callback); | 100 SyncTaskManager::PRIORITY_HIGH, callback); |
| 100 } | 101 } |
| 101 | 102 |
| 102 void SyncWorker::EnableOrigin( | 103 void SyncWorker::EnableOrigin( |
| 103 const GURL& origin, | 104 const GURL& origin, |
| 104 const SyncStatusCallback& callback) { | 105 const SyncStatusCallback& callback) { |
| 105 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 106 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| 106 | 107 |
| 107 task_manager_->ScheduleTask( | 108 task_manager_->ScheduleTask( |
| 108 FROM_HERE, | 109 FROM_HERE, |
| 109 base::Bind(&SyncWorker::DoEnableApp, | 110 base::Bind(&SyncWorker::DoEnableApp, |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 scoped_ptr<RemoteFileSyncService::OriginStatusMap> | 184 scoped_ptr<RemoteFileSyncService::OriginStatusMap> |
| 184 status_map(new RemoteFileSyncService::OriginStatusMap); | 185 status_map(new RemoteFileSyncService::OriginStatusMap); |
| 185 for (std::vector<std::string>::const_iterator itr = app_ids.begin(); | 186 for (std::vector<std::string>::const_iterator itr = app_ids.begin(); |
| 186 itr != app_ids.end(); ++itr) { | 187 itr != app_ids.end(); ++itr) { |
| 187 const std::string& app_id = *itr; | 188 const std::string& app_id = *itr; |
| 188 GURL origin = extensions::Extension::GetBaseURLFromExtensionId(app_id); | 189 GURL origin = extensions::Extension::GetBaseURLFromExtensionId(app_id); |
| 189 (*status_map)[origin] = | 190 (*status_map)[origin] = |
| 190 GetMetadataDatabase()->IsAppEnabled(app_id) ? "Enabled" : "Disabled"; | 191 GetMetadataDatabase()->IsAppEnabled(app_id) ? "Enabled" : "Disabled"; |
| 191 } | 192 } |
| 192 | 193 |
| 193 callback.Run(status_map.Pass()); | 194 callback.Run(std::move(status_map)); |
| 194 } | 195 } |
| 195 | 196 |
| 196 scoped_ptr<base::ListValue> SyncWorker::DumpFiles(const GURL& origin) { | 197 scoped_ptr<base::ListValue> SyncWorker::DumpFiles(const GURL& origin) { |
| 197 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 198 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| 198 | 199 |
| 199 if (!GetMetadataDatabase()) | 200 if (!GetMetadataDatabase()) |
| 200 return scoped_ptr<base::ListValue>(); | 201 return scoped_ptr<base::ListValue>(); |
| 201 return GetMetadataDatabase()->DumpFiles(origin.host()); | 202 return GetMetadataDatabase()->DumpFiles(origin.host()); |
| 202 } | 203 } |
| 203 | 204 |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 388 } | 389 } |
| 389 if (status != SYNC_STATUS_OK) { | 390 if (status != SYNC_STATUS_OK) { |
| 390 UpdateServiceState(REMOTE_SERVICE_TEMPORARY_UNAVAILABLE, | 391 UpdateServiceState(REMOTE_SERVICE_TEMPORARY_UNAVAILABLE, |
| 391 "Could not initialize remote service"); | 392 "Could not initialize remote service"); |
| 392 return; | 393 return; |
| 393 } | 394 } |
| 394 | 395 |
| 395 scoped_ptr<MetadataDatabase> metadata_database = | 396 scoped_ptr<MetadataDatabase> metadata_database = |
| 396 initializer->PassMetadataDatabase(); | 397 initializer->PassMetadataDatabase(); |
| 397 if (metadata_database) { | 398 if (metadata_database) { |
| 398 context_->SetMetadataDatabase(metadata_database.Pass()); | 399 context_->SetMetadataDatabase(std::move(metadata_database)); |
| 399 return; | 400 return; |
| 400 } | 401 } |
| 401 | 402 |
| 402 UpdateServiceState(REMOTE_SERVICE_OK, std::string()); | 403 UpdateServiceState(REMOTE_SERVICE_OK, std::string()); |
| 403 UpdateRegisteredApps(); | 404 UpdateRegisteredApps(); |
| 404 } | 405 } |
| 405 | 406 |
| 406 void SyncWorker::UpdateRegisteredApps() { | 407 void SyncWorker::UpdateRegisteredApps() { |
| 407 MetadataDatabase* metadata_db = GetMetadataDatabase(); | 408 MetadataDatabase* metadata_db = GetMetadataDatabase(); |
| 408 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 409 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 715 return context_->GetDriveUploader(); | 716 return context_->GetDriveUploader(); |
| 716 } | 717 } |
| 717 | 718 |
| 718 MetadataDatabase* SyncWorker::GetMetadataDatabase() { | 719 MetadataDatabase* SyncWorker::GetMetadataDatabase() { |
| 719 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 720 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| 720 return context_->GetMetadataDatabase(); | 721 return context_->GetMetadataDatabase(); |
| 721 } | 722 } |
| 722 | 723 |
| 723 } // namespace drive_backend | 724 } // namespace drive_backend |
| 724 } // namespace sync_file_system | 725 } // namespace sync_file_system |
| OLD | NEW |