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)); |
} |