Chromium Code Reviews| 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 <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 105 sync_engine_->UpdateServiceState(state, description); | 105 sync_engine_->UpdateServiceState(state, description); |
| 106 return; | 106 return; |
| 107 } | 107 } |
| 108 | 108 |
| 109 ui_task_runner_->PostTask( | 109 ui_task_runner_->PostTask( |
| 110 FROM_HERE, | 110 FROM_HERE, |
| 111 base::Bind(&SyncEngine::UpdateServiceState, | 111 base::Bind(&SyncEngine::UpdateServiceState, |
| 112 sync_engine_, state, description)); | 112 sync_engine_, state, description)); |
| 113 } | 113 } |
| 114 | 114 |
| 115 virtual void OnPromoteDemotedChanges(size_t num_trackers) OVERRIDE { | |
| 116 ui_task_runner_->PostTask( | |
| 117 FROM_HERE, | |
| 118 base::Bind(&SyncEngine::DidPromoteDemotedChanges, | |
| 119 sync_engine_, num_trackers)); | |
| 120 } | |
| 121 | |
| 115 private: | 122 private: |
| 116 scoped_refptr<base::SequencedTaskRunner> ui_task_runner_; | 123 scoped_refptr<base::SequencedTaskRunner> ui_task_runner_; |
| 117 base::WeakPtr<SyncEngine> sync_engine_; | 124 base::WeakPtr<SyncEngine> sync_engine_; |
| 118 | 125 |
| 119 DISALLOW_COPY_AND_ASSIGN(WorkerObserver); | 126 DISALLOW_COPY_AND_ASSIGN(WorkerObserver); |
| 120 }; | 127 }; |
| 121 | 128 |
| 122 namespace { | 129 namespace { |
| 123 | 130 |
| 124 void EmptyStatusCallback(SyncStatusCode status) {} | 131 void EmptyStatusCallback(SyncStatusCode status) {} |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 384 | 391 |
| 385 void SyncEngine::SetSyncEnabled(bool enabled) { | 392 void SyncEngine::SetSyncEnabled(bool enabled) { |
| 386 worker_task_runner_->PostTask( | 393 worker_task_runner_->PostTask( |
| 387 FROM_HERE, | 394 FROM_HERE, |
| 388 base::Bind(&SyncWorker::SetSyncEnabled, | 395 base::Bind(&SyncWorker::SetSyncEnabled, |
| 389 base::Unretained(sync_worker_.get()), | 396 base::Unretained(sync_worker_.get()), |
| 390 enabled)); | 397 enabled)); |
| 391 } | 398 } |
| 392 | 399 |
| 393 void SyncEngine::PromoteDemotedChanges() { | 400 void SyncEngine::PromoteDemotedChanges() { |
| 394 MetadataDatabase* metadata_db = GetMetadataDatabase(); | 401 worker_task_runner_->PostTask( |
| 395 if (metadata_db && metadata_db->HasLowPriorityDirtyTracker()) { | 402 FROM_HERE, |
| 396 metadata_db->PromoteLowerPriorityTrackersToNormal(); | 403 base::Bind(&SyncWorker::PromoteDemotedChanges, |
| 397 FOR_EACH_OBSERVER( | 404 base::Unretained(sync_worker_.get()))); |
| 398 Observer, | |
| 399 service_observers_, | |
| 400 OnRemoteChangeQueueUpdated(metadata_db->CountDirtyTracker())); | |
| 401 } | |
| 402 } | 405 } |
| 403 | 406 |
| 404 void SyncEngine::ApplyLocalChange( | 407 void SyncEngine::ApplyLocalChange( |
| 405 const FileChange& local_change, | 408 const FileChange& local_change, |
| 406 const base::FilePath& local_path, | 409 const base::FilePath& local_path, |
| 407 const SyncFileMetadata& local_metadata, | 410 const SyncFileMetadata& local_metadata, |
| 408 const fileapi::FileSystemURL& url, | 411 const fileapi::FileSystemURL& url, |
| 409 const SyncStatusCallback& callback) { | 412 const SyncStatusCallback& callback) { |
| 410 worker_task_runner_->PostTask( | 413 worker_task_runner_->PostTask( |
| 411 FROM_HERE, | 414 FROM_HERE, |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 460 } | 463 } |
| 461 | 464 |
| 462 drive::DriveServiceInterface* SyncEngine::GetDriveService() { | 465 drive::DriveServiceInterface* SyncEngine::GetDriveService() { |
| 463 return drive_service_.get(); | 466 return drive_service_.get(); |
| 464 } | 467 } |
| 465 | 468 |
| 466 drive::DriveUploaderInterface* SyncEngine::GetDriveUploader() { | 469 drive::DriveUploaderInterface* SyncEngine::GetDriveUploader() { |
| 467 return drive_uploader_.get(); | 470 return drive_uploader_.get(); |
| 468 } | 471 } |
| 469 | 472 |
| 470 MetadataDatabase* SyncEngine::GetMetadataDatabase() { | 473 MetadataDatabase* SyncEngine::GetMetadataDatabaseForTesting() { |
|
nhiroki
2014/05/29 01:56:13
In tests, callers of this function need to ensure
peria
2014/05/29 02:15:29
I think it wrong.
In such a case, sync worker and
nhiroki
2014/05/29 04:12:58
Sorry, "... ensure that the worker is suspended ..
| |
| 471 // TODO(peria): Post task | |
| 472 return sync_worker_->GetMetadataDatabase(); | 474 return sync_worker_->GetMetadataDatabase(); |
| 473 } | 475 } |
| 474 | 476 |
| 475 SyncEngine::SyncEngine( | 477 SyncEngine::SyncEngine( |
| 476 scoped_ptr<drive::DriveServiceInterface> drive_service, | 478 scoped_ptr<drive::DriveServiceInterface> drive_service, |
| 477 scoped_ptr<drive::DriveUploaderInterface> drive_uploader, | 479 scoped_ptr<drive::DriveUploaderInterface> drive_uploader, |
| 478 base::SequencedTaskRunner* worker_task_runner, | 480 base::SequencedTaskRunner* worker_task_runner, |
| 479 drive::DriveNotificationManager* notification_manager, | 481 drive::DriveNotificationManager* notification_manager, |
| 480 ExtensionServiceInterface* extension_service, | 482 ExtensionServiceInterface* extension_service, |
| 481 SigninManagerBase* signin_manager) | 483 SigninManagerBase* signin_manager) |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 509 | 511 |
| 510 void SyncEngine::UpdateServiceState(RemoteServiceState state, | 512 void SyncEngine::UpdateServiceState(RemoteServiceState state, |
| 511 const std::string& description) { | 513 const std::string& description) { |
| 512 service_state_ = state; | 514 service_state_ = state; |
| 513 | 515 |
| 514 FOR_EACH_OBSERVER( | 516 FOR_EACH_OBSERVER( |
| 515 Observer, service_observers_, | 517 Observer, service_observers_, |
| 516 OnRemoteServiceStateUpdated(state, description)); | 518 OnRemoteServiceStateUpdated(state, description)); |
| 517 } | 519 } |
| 518 | 520 |
| 519 void SyncEngine::UpdateRegisteredApps() { | 521 void SyncEngine::DidPromoteDemotedChanges(size_t num_trackers) { |
|
tzik
2014/05/29 02:24:25
Please merge this to OnPendingFileListUpdated
peria
2014/05/29 03:11:46
Done.
| |
| 522 FOR_EACH_OBSERVER( | |
| 523 Observer, | |
| 524 service_observers_, | |
| 525 OnRemoteChangeQueueUpdated(num_trackers)); | |
| 526 } | |
| 527 | |
| 528 void SyncEngine::UpdateRegisteredAppsForTesting() { | |
| 520 if (!extension_service_) | 529 if (!extension_service_) |
| 521 return; | 530 return; |
| 522 | 531 |
| 523 MetadataDatabase* metadata_db = GetMetadataDatabase(); | 532 MetadataDatabase* metadata_db = GetMetadataDatabaseForTesting(); |
| 524 DCHECK(metadata_db); | 533 DCHECK(metadata_db); |
| 525 std::vector<std::string> app_ids; | 534 std::vector<std::string> app_ids; |
| 526 metadata_db->GetRegisteredAppIDs(&app_ids); | 535 metadata_db->GetRegisteredAppIDs(&app_ids); |
| 527 | 536 |
| 528 // Update the status of every origin using status from ExtensionService. | 537 // Update the status of every origin using status from ExtensionService. |
| 529 for (std::vector<std::string>::const_iterator itr = app_ids.begin(); | 538 for (std::vector<std::string>::const_iterator itr = app_ids.begin(); |
| 530 itr != app_ids.end(); ++itr) { | 539 itr != app_ids.end(); ++itr) { |
| 531 const std::string& app_id = *itr; | 540 const std::string& app_id = *itr; |
| 532 GURL origin = | 541 GURL origin = |
| 533 extensions::Extension::GetBaseURLFromExtensionId(app_id); | 542 extensions::Extension::GetBaseURLFromExtensionId(app_id); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 550 tracker.tracker_kind() == TRACKER_KIND_APP_ROOT; | 559 tracker.tracker_kind() == TRACKER_KIND_APP_ROOT; |
| 551 if (is_app_enabled && !is_app_root_tracker_enabled) | 560 if (is_app_enabled && !is_app_root_tracker_enabled) |
| 552 EnableOrigin(origin, base::Bind(&EmptyStatusCallback)); | 561 EnableOrigin(origin, base::Bind(&EmptyStatusCallback)); |
| 553 else if (!is_app_enabled && is_app_root_tracker_enabled) | 562 else if (!is_app_enabled && is_app_root_tracker_enabled) |
| 554 DisableOrigin(origin, base::Bind(&EmptyStatusCallback)); | 563 DisableOrigin(origin, base::Bind(&EmptyStatusCallback)); |
| 555 } | 564 } |
| 556 } | 565 } |
| 557 | 566 |
| 558 } // namespace drive_backend | 567 } // namespace drive_backend |
| 559 } // namespace sync_file_system | 568 } // namespace sync_file_system |
| OLD | NEW |