| Index: chrome/browser/sync_file_system/drive_backend/metadata_database.cc
|
| diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
|
| index fd93192676dc19e529e1cb91ce099017b399ad74..8abdcb42255c78a97c8fc39423003c21818bd1cc 100644
|
| --- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
|
| +++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
|
| @@ -1190,6 +1190,8 @@ void MetadataDatabase::UpdateTracker(int64 tracker_id,
|
| scoped_ptr<FileTracker> updated_tracker = CloneFileTracker(&tracker);
|
| *updated_tracker->mutable_synced_details() = updated_details;
|
|
|
| + bool should_promote = false;
|
| +
|
| // Activate the tracker if:
|
| // - There is no active tracker that tracks |tracker->file_id()|.
|
| // - There is no active tracker that has the same |parent| and |title|.
|
| @@ -1198,10 +1200,13 @@ void MetadataDatabase::UpdateTracker(int64 tracker_id,
|
| updated_tracker->set_dirty(true);
|
| updated_tracker->set_needs_folder_listing(
|
| tracker.synced_details().file_kind() == FILE_KIND_FOLDER);
|
| + should_promote = true;
|
| } else if (tracker.dirty() && !ShouldKeepDirty(tracker)) {
|
| updated_tracker->set_dirty(false);
|
| }
|
| index_->StoreFileTracker(updated_tracker.Pass());
|
| + if (should_promote)
|
| + index_->PromoteDemotedDirtyTracker(tracker_id);
|
|
|
| WriteToDatabase(callback);
|
| }
|
| @@ -1281,9 +1286,16 @@ void MetadataDatabase::LowerTrackerPriority(int64 tracker_id) {
|
| WriteToDatabase(base::Bind(&EmptyStatusCallback));
|
| }
|
|
|
| -void MetadataDatabase::PromoteLowerPriorityTrackersToNormal() {
|
| +bool MetadataDatabase::PromoteLowerPriorityTrackersToNormal() {
|
| + DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread());
|
| + bool promoted = index_->PromoteDemotedDirtyTrackers();
|
| + WriteToDatabase(base::Bind(&EmptyStatusCallback));
|
| + return promoted;
|
| +}
|
| +
|
| +void MetadataDatabase::PromoteDemotedTracker(int64 tracker_id) {
|
| DCHECK(worker_sequence_checker_.CalledOnValidSequencedThread());
|
| - index_->PromoteDemotedDirtyTrackers();
|
| + index_->PromoteDemotedDirtyTracker(tracker_id);
|
| WriteToDatabase(base::Bind(&EmptyStatusCallback));
|
| }
|
|
|
|
|