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 |