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 |