Chromium Code Reviews| 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 5c3bae8aa639b29ebb83b002a54c4fe09ab2de76..7040bc6d5e42210ee3b4939400cb8a277a733ada 100644 |
| --- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc |
| +++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc |
| @@ -1176,6 +1176,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; |
|
peria
2014/08/07 09:24:48
isn't it referred?
tzik
2014/08/08 04:05:42
Ah, I forgot to check it. Fixed.
|
| + |
| // 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|. |
| @@ -1184,10 +1186,12 @@ 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()); |
| + index_->PromoteDemotedDirtyTracker(tracker_id); |
| WriteToDatabase(callback); |
| } |
| @@ -1267,9 +1271,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)); |
| } |