| Index: chrome/browser/sync_file_system/drive_backend/sync_engine.cc
|
| diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
|
| index 9dc0c8181bcdcc349ff1e47a07d705178251241a..780eed74b761ae8bc3e3df450d04410dfe99f156 100644
|
| --- a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
|
| +++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
|
| @@ -112,6 +112,13 @@ class SyncEngine::WorkerObserver : public SyncWorker::Observer {
|
| sync_engine_, state, description));
|
| }
|
|
|
| + virtual void OnPromoteDemotedChanges(size_t num_trackers) OVERRIDE {
|
| + ui_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SyncEngine::DidPromoteDemotedChanges,
|
| + sync_engine_, num_trackers));
|
| + }
|
| +
|
| private:
|
| scoped_refptr<base::SequencedTaskRunner> ui_task_runner_;
|
| base::WeakPtr<SyncEngine> sync_engine_;
|
| @@ -391,14 +398,10 @@ void SyncEngine::SetSyncEnabled(bool enabled) {
|
| }
|
|
|
| void SyncEngine::PromoteDemotedChanges() {
|
| - MetadataDatabase* metadata_db = GetMetadataDatabase();
|
| - if (metadata_db && metadata_db->HasLowPriorityDirtyTracker()) {
|
| - metadata_db->PromoteLowerPriorityTrackersToNormal();
|
| - FOR_EACH_OBSERVER(
|
| - Observer,
|
| - service_observers_,
|
| - OnRemoteChangeQueueUpdated(metadata_db->CountDirtyTracker()));
|
| - }
|
| + worker_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&SyncWorker::PromoteDemotedChanges,
|
| + base::Unretained(sync_worker_.get())));
|
| }
|
|
|
| void SyncEngine::ApplyLocalChange(
|
| @@ -467,8 +470,7 @@ drive::DriveUploaderInterface* SyncEngine::GetDriveUploader() {
|
| return drive_uploader_.get();
|
| }
|
|
|
| -MetadataDatabase* SyncEngine::GetMetadataDatabase() {
|
| - // TODO(peria): Post task
|
| +MetadataDatabase* SyncEngine::GetMetadataDatabaseForTesting() {
|
| return sync_worker_->GetMetadataDatabase();
|
| }
|
|
|
| @@ -516,11 +518,18 @@ void SyncEngine::UpdateServiceState(RemoteServiceState state,
|
| OnRemoteServiceStateUpdated(state, description));
|
| }
|
|
|
| -void SyncEngine::UpdateRegisteredApps() {
|
| +void SyncEngine::DidPromoteDemotedChanges(size_t num_trackers) {
|
| + FOR_EACH_OBSERVER(
|
| + Observer,
|
| + service_observers_,
|
| + OnRemoteChangeQueueUpdated(num_trackers));
|
| +}
|
| +
|
| +void SyncEngine::UpdateRegisteredAppsForTesting() {
|
| if (!extension_service_)
|
| return;
|
|
|
| - MetadataDatabase* metadata_db = GetMetadataDatabase();
|
| + MetadataDatabase* metadata_db = GetMetadataDatabaseForTesting();
|
| DCHECK(metadata_db);
|
| std::vector<std::string> app_ids;
|
| metadata_db->GetRegisteredAppIDs(&app_ids);
|
|
|