| 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 <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/memory/weak_ptr.h" | |
| 11 #include "base/threading/sequenced_worker_pool.h" | |
| 12 #include "base/values.h" | |
| 13 #include "chrome/browser/drive/drive_api_service.h" | |
| 14 #include "chrome/browser/drive/drive_notification_manager.h" | |
| 15 #include "chrome/browser/drive/drive_notification_manager_factory.h" | |
| 16 #include "chrome/browser/drive/drive_service_interface.h" | 10 #include "chrome/browser/drive/drive_service_interface.h" |
| 17 #include "chrome/browser/drive/drive_uploader.h" | |
| 18 #include "chrome/browser/extensions/extension_service.h" | 11 #include "chrome/browser/extensions/extension_service.h" |
| 19 #include "chrome/browser/profiles/profile.h" | |
| 20 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" | |
| 21 #include "chrome/browser/signin/signin_manager_factory.h" | |
| 22 #include "chrome/browser/sync_file_system/drive_backend/callback_helper.h" | 12 #include "chrome/browser/sync_file_system/drive_backend/callback_helper.h" |
| 23 #include "chrome/browser/sync_file_system/drive_backend/conflict_resolver.h" | 13 #include "chrome/browser/sync_file_system/drive_backend/conflict_resolver.h" |
| 24 #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" |
| 25 #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" |
| 26 #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
" |
| 27 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" | 17 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" |
| 28 #include "chrome/browser/sync_file_system/drive_backend/register_app_task.h" | 18 #include "chrome/browser/sync_file_system/drive_backend/register_app_task.h" |
| 29 #include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_
on_worker.h" | 19 #include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_
on_worker.h" |
| 30 #include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_
wrapper.h" | |
| 31 #include "chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.h
" | 20 #include "chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.h
" |
| 32 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h" | 21 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h" |
| 33 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.
h" | 22 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.
h" |
| 34 #include "chrome/browser/sync_file_system/drive_backend/sync_task.h" | 23 #include "chrome/browser/sync_file_system/drive_backend/sync_task.h" |
| 35 #include "chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h" | 24 #include "chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h" |
| 36 #include "chrome/browser/sync_file_system/file_status_observer.h" | |
| 37 #include "chrome/browser/sync_file_system/logger.h" | 25 #include "chrome/browser/sync_file_system/logger.h" |
| 38 #include "chrome/browser/sync_file_system/syncable_file_system_util.h" | 26 #include "chrome/browser/sync_file_system/syncable_file_system_util.h" |
| 39 #include "components/signin/core/browser/profile_oauth2_token_service.h" | |
| 40 #include "components/signin/core/browser/signin_manager.h" | |
| 41 #include "content/public/browser/browser_thread.h" | |
| 42 #include "extensions/browser/extension_system.h" | |
| 43 #include "extensions/browser/extension_system_provider.h" | |
| 44 #include "extensions/browser/extensions_browser_client.h" | |
| 45 #include "extensions/common/extension.h" | |
| 46 #include "google_apis/drive/drive_api_url_generator.h" | |
| 47 #include "google_apis/drive/gdata_wapi_url_generator.h" | |
| 48 #include "webkit/common/blob/scoped_file.h" | |
| 49 #include "webkit/common/fileapi/file_system_util.h" | 27 #include "webkit/common/fileapi/file_system_util.h" |
| 50 | 28 |
| 51 namespace sync_file_system { | 29 namespace sync_file_system { |
| 52 | 30 |
| 53 class RemoteChangeProcessor; | 31 class RemoteChangeProcessor; |
| 54 | 32 |
| 55 namespace drive_backend { | 33 namespace drive_backend { |
| 56 | 34 |
| 57 namespace { | 35 namespace { |
| 58 | 36 |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 MetadataDatabase* metadata_db = GetMetadataDatabase(); | 262 MetadataDatabase* metadata_db = GetMetadataDatabase(); |
| 285 if (metadata_db && metadata_db->HasLowPriorityDirtyTracker()) { | 263 if (metadata_db && metadata_db->HasLowPriorityDirtyTracker()) { |
| 286 metadata_db->PromoteLowerPriorityTrackersToNormal(); | 264 metadata_db->PromoteLowerPriorityTrackersToNormal(); |
| 287 FOR_EACH_OBSERVER( | 265 FOR_EACH_OBSERVER( |
| 288 Observer, | 266 Observer, |
| 289 observers_, | 267 observers_, |
| 290 OnPendingFileListUpdated(metadata_db->CountDirtyTracker())); | 268 OnPendingFileListUpdated(metadata_db->CountDirtyTracker())); |
| 291 } | 269 } |
| 292 } | 270 } |
| 293 | 271 |
| 294 SyncStatusCode SyncWorker::SetDefaultConflictResolutionPolicy( | |
| 295 ConflictResolutionPolicy policy) { | |
| 296 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
| 297 | |
| 298 default_conflict_resolution_policy_ = policy; | |
| 299 return SYNC_STATUS_OK; | |
| 300 } | |
| 301 | |
| 302 SyncStatusCode SyncWorker::SetConflictResolutionPolicy( | |
| 303 const GURL& origin, | |
| 304 ConflictResolutionPolicy policy) { | |
| 305 NOTIMPLEMENTED(); | |
| 306 default_conflict_resolution_policy_ = policy; | |
| 307 return SYNC_STATUS_OK; | |
| 308 } | |
| 309 | |
| 310 ConflictResolutionPolicy SyncWorker::GetDefaultConflictResolutionPolicy() | |
| 311 const { | |
| 312 return default_conflict_resolution_policy_; | |
| 313 } | |
| 314 | |
| 315 ConflictResolutionPolicy SyncWorker::GetConflictResolutionPolicy( | |
| 316 const GURL& origin) const { | |
| 317 NOTIMPLEMENTED(); | |
| 318 return default_conflict_resolution_policy_; | |
| 319 } | |
| 320 | |
| 321 void SyncWorker::ApplyLocalChange( | 272 void SyncWorker::ApplyLocalChange( |
| 322 const FileChange& local_change, | 273 const FileChange& local_change, |
| 323 const base::FilePath& local_path, | 274 const base::FilePath& local_path, |
| 324 const SyncFileMetadata& local_metadata, | 275 const SyncFileMetadata& local_metadata, |
| 325 const fileapi::FileSystemURL& url, | 276 const fileapi::FileSystemURL& url, |
| 326 const SyncStatusCallback& callback) { | 277 const SyncStatusCallback& callback) { |
| 327 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 278 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| 328 | 279 |
| 329 LocalToRemoteSyncer* syncer = new LocalToRemoteSyncer( | 280 LocalToRemoteSyncer* syncer = new LocalToRemoteSyncer( |
| 330 context_.get(), local_metadata, local_change, local_path, url); | 281 context_.get(), local_metadata, local_change, local_path, url); |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 444 MetadataDatabase* SyncWorker::GetMetadataDatabase() { | 395 MetadataDatabase* SyncWorker::GetMetadataDatabase() { |
| 445 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 396 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| 446 return context_->GetMetadataDatabase(); | 397 return context_->GetMetadataDatabase(); |
| 447 } | 398 } |
| 448 | 399 |
| 449 SyncTaskManager* SyncWorker::GetSyncTaskManager() { | 400 SyncTaskManager* SyncWorker::GetSyncTaskManager() { |
| 450 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 401 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| 451 return task_manager_.get(); | 402 return task_manager_.get(); |
| 452 } | 403 } |
| 453 | 404 |
| 454 void SyncWorker::AddObserver(Observer* observer) { | |
| 455 observers_.AddObserver(observer); | |
| 456 } | |
| 457 | |
| 458 void SyncWorker::DetachFromSequence() { | 405 void SyncWorker::DetachFromSequence() { |
| 459 context_->DetachFromSequence(); | 406 context_->DetachFromSequence(); |
| 460 sequence_checker_.DetachFromSequence(); | 407 sequence_checker_.DetachFromSequence(); |
| 461 } | 408 } |
| 462 | 409 |
| 410 void SyncWorker::AddObserver(Observer* observer) { |
| 411 observers_.AddObserver(observer); |
| 412 } |
| 413 |
| 414 void SyncWorker::SetHasRefreshToken(bool has_refresh_token) { |
| 415 has_refresh_token_ = has_refresh_token; |
| 416 } |
| 417 |
| 463 void SyncWorker::DoDisableApp(const std::string& app_id, | 418 void SyncWorker::DoDisableApp(const std::string& app_id, |
| 464 const SyncStatusCallback& callback) { | 419 const SyncStatusCallback& callback) { |
| 465 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 420 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| 466 | 421 |
| 467 if (GetMetadataDatabase()) { | 422 if (GetMetadataDatabase()) { |
| 468 GetMetadataDatabase()->DisableApp(app_id, callback); | 423 GetMetadataDatabase()->DisableApp(app_id, callback); |
| 469 } else { | 424 } else { |
| 470 context_->GetUITaskRunner()->PostTask( | 425 context_->GetUITaskRunner()->PostTask( |
| 471 FROM_HERE, base::Bind(callback, SYNC_STATUS_OK)); | 426 FROM_HERE, base::Bind(callback, SYNC_STATUS_OK)); |
| 472 } | 427 } |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 787 "Service state changed: %d->%d: %s", | 742 "Service state changed: %d->%d: %s", |
| 788 old_state, GetCurrentState(), description.c_str()); | 743 old_state, GetCurrentState(), description.c_str()); |
| 789 | 744 |
| 790 FOR_EACH_OBSERVER( | 745 FOR_EACH_OBSERVER( |
| 791 Observer, observers_, | 746 Observer, observers_, |
| 792 UpdateServiceState(GetCurrentState(), description)); | 747 UpdateServiceState(GetCurrentState(), description)); |
| 793 } | 748 } |
| 794 | 749 |
| 795 } // namespace drive_backend | 750 } // namespace drive_backend |
| 796 } // namespace sync_file_system | 751 } // namespace sync_file_system |
| OLD | NEW |