OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/sync_file_system/drive_backend/conflict_resolver.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/conflict_resolver.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/location.h" | 8 #include "base/location.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "chrome/browser/drive/drive_api_util.h" | 10 #include "chrome/browser/drive/drive_api_util.h" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 if (!trackers.has_active()) { | 50 if (!trackers.has_active()) { |
51 NOTREACHED(); | 51 NOTREACHED(); |
52 callback.Run(SYNC_STATUS_FAILED); | 52 callback.Run(SYNC_STATUS_FAILED); |
53 return; | 53 return; |
54 } | 54 } |
55 | 55 |
56 DCHECK(trackers.has_active()); | 56 DCHECK(trackers.has_active()); |
57 for (TrackerSet::const_iterator itr = trackers.begin(); | 57 for (TrackerSet::const_iterator itr = trackers.begin(); |
58 itr != trackers.end(); ++itr) { | 58 itr != trackers.end(); ++itr) { |
59 const FileTracker& tracker = **itr; | 59 const FileTracker& tracker = **itr; |
| 60 if (tracker.active()) |
| 61 continue; |
60 | 62 |
61 FileTracker parent_tracker; | 63 FileTracker parent_tracker; |
62 bool should_success = metadata_database()->FindTrackerByTrackerID( | 64 bool should_success = metadata_database()->FindTrackerByTrackerID( |
63 tracker.parent_tracker_id(), &parent_tracker); | 65 tracker.parent_tracker_id(), &parent_tracker); |
64 if (!should_success) { | 66 if (!should_success) { |
65 NOTREACHED(); | 67 NOTREACHED(); |
66 callback.Run(SYNC_STATUS_FAILED); | 68 callback.Run(SYNC_STATUS_FAILED); |
67 return; | 69 return; |
68 } | 70 } |
69 parents_to_remove_.push_back(parent_tracker.file_id()); | 71 parents_to_remove_.push_back(parent_tracker.file_id()); |
(...skipping 22 matching lines...) Expand all Loading... |
92 | 94 |
93 void ConflictResolver::DetachFromNonPrimaryParents( | 95 void ConflictResolver::DetachFromNonPrimaryParents( |
94 const SyncStatusCallback& callback) { | 96 const SyncStatusCallback& callback) { |
95 DCHECK(!parents_to_remove_.empty()); | 97 DCHECK(!parents_to_remove_.empty()); |
96 | 98 |
97 // TODO(tzik): Check if ETag match is available for | 99 // TODO(tzik): Check if ETag match is available for |
98 // RemoteResourceFromDirectory. | 100 // RemoteResourceFromDirectory. |
99 std::string parent_folder_id = parents_to_remove_.back(); | 101 std::string parent_folder_id = parents_to_remove_.back(); |
100 parents_to_remove_.pop_back(); | 102 parents_to_remove_.pop_back(); |
101 drive_service()->RemoveResourceFromDirectory( | 103 drive_service()->RemoveResourceFromDirectory( |
102 target_file_id_, parent_folder_id, | 104 parent_folder_id, target_file_id_, |
103 base::Bind(&ConflictResolver::DidDetachFromParent, | 105 base::Bind(&ConflictResolver::DidDetachFromParent, |
104 weak_ptr_factory_.GetWeakPtr(), | 106 weak_ptr_factory_.GetWeakPtr(), |
105 callback)); | 107 callback)); |
106 } | 108 } |
107 | 109 |
108 void ConflictResolver::DidDetachFromParent(const SyncStatusCallback& callback, | 110 void ConflictResolver::DidDetachFromParent(const SyncStatusCallback& callback, |
109 google_apis::GDataErrorCode error) { | 111 google_apis::GDataErrorCode error) { |
110 if (error != google_apis::HTTP_SUCCESS) { | 112 if (error != google_apis::HTTP_SUCCESS) { |
111 callback.Run(GDataErrorCodeToSyncStatusCode(error)); | 113 callback.Run(GDataErrorCodeToSyncStatusCode(error)); |
112 return; | 114 return; |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 set_used_network(true); | 232 set_used_network(true); |
231 return sync_context_->GetDriveService(); | 233 return sync_context_->GetDriveService(); |
232 } | 234 } |
233 | 235 |
234 MetadataDatabase* ConflictResolver::metadata_database() { | 236 MetadataDatabase* ConflictResolver::metadata_database() { |
235 return sync_context_->GetMetadataDatabase(); | 237 return sync_context_->GetMetadataDatabase(); |
236 } | 238 } |
237 | 239 |
238 } // namespace drive_backend | 240 } // namespace drive_backend |
239 } // namespace sync_file_system | 241 } // namespace sync_file_system |
OLD | NEW |