Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1852)

Unified Diff: chrome/browser/sync_file_system/drive_backend/metadata_database.cc

Issue 446793002: [SyncFS] Unconditionally demote remote file trackers on remote-to-local sync (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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));
}

Powered by Google App Engine
This is Rietveld 408576698