| 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/format_macros.h" | 8 #include "base/format_macros.h" |
| 9 #include "base/location.h" | 9 #include "base/location.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 "Detach %s from %s", | 137 "Detach %s from %s", |
| 138 target_file_id_.c_str(), parent_folder_id.c_str())); | 138 target_file_id_.c_str(), parent_folder_id.c_str())); |
| 139 | 139 |
| 140 drive_service()->RemoveResourceFromDirectory( | 140 drive_service()->RemoveResourceFromDirectory( |
| 141 parent_folder_id, target_file_id_, | 141 parent_folder_id, target_file_id_, |
| 142 base::Bind(&ConflictResolver::DidDetachFromParent, | 142 base::Bind(&ConflictResolver::DidDetachFromParent, |
| 143 weak_ptr_factory_.GetWeakPtr(), | 143 weak_ptr_factory_.GetWeakPtr(), |
| 144 base::Passed(&token))); | 144 base::Passed(&token))); |
| 145 } | 145 } |
| 146 | 146 |
| 147 void ConflictResolver::DidDetachFromParent(scoped_ptr<SyncTaskToken> token, | 147 void ConflictResolver::DidDetachFromParent( |
| 148 google_apis::GDataErrorCode error) { | 148 scoped_ptr<SyncTaskToken> token, |
| 149 SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); | 149 google_apis::DriveApiErrorCode error) { |
| 150 SyncStatusCode status = DriveApiErrorCodeToSyncStatusCode(error); |
| 150 if (status != SYNC_STATUS_OK) { | 151 if (status != SYNC_STATUS_OK) { |
| 151 SyncTaskManager::NotifyTaskDone(token.Pass(), status); | 152 SyncTaskManager::NotifyTaskDone(token.Pass(), status); |
| 152 return; | 153 return; |
| 153 } | 154 } |
| 154 | 155 |
| 155 if (!parents_to_remove_.empty()) { | 156 if (!parents_to_remove_.empty()) { |
| 156 DetachFromNonPrimaryParents(token.Pass()); | 157 DetachFromNonPrimaryParents(token.Pass()); |
| 157 return; | 158 return; |
| 158 } | 159 } |
| 159 | 160 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 // the folder identified by |target_file_id_|. | 242 // the folder identified by |target_file_id_|. |
| 242 drive_service()->DeleteResource( | 243 drive_service()->DeleteResource( |
| 243 file_id, etag, | 244 file_id, etag, |
| 244 base::Bind(&ConflictResolver::DidRemoveFile, | 245 base::Bind(&ConflictResolver::DidRemoveFile, |
| 245 weak_ptr_factory_.GetWeakPtr(), | 246 weak_ptr_factory_.GetWeakPtr(), |
| 246 base::Passed(&token), file_id)); | 247 base::Passed(&token), file_id)); |
| 247 } | 248 } |
| 248 | 249 |
| 249 void ConflictResolver::DidRemoveFile(scoped_ptr<SyncTaskToken> token, | 250 void ConflictResolver::DidRemoveFile(scoped_ptr<SyncTaskToken> token, |
| 250 const std::string& file_id, | 251 const std::string& file_id, |
| 251 google_apis::GDataErrorCode error) { | 252 google_apis::DriveApiErrorCode error) { |
| 252 if (error == google_apis::HTTP_PRECONDITION || | 253 if (error == google_apis::HTTP_PRECONDITION || |
| 253 error == google_apis::HTTP_CONFLICT) { | 254 error == google_apis::HTTP_CONFLICT) { |
| 254 UpdateFileMetadata(file_id, token.Pass()); | 255 UpdateFileMetadata(file_id, token.Pass()); |
| 255 return; | 256 return; |
| 256 } | 257 } |
| 257 | 258 |
| 258 SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); | 259 SyncStatusCode status = DriveApiErrorCodeToSyncStatusCode(error); |
| 259 if (status != SYNC_STATUS_OK && error != google_apis::HTTP_NOT_FOUND) { | 260 if (status != SYNC_STATUS_OK && error != google_apis::HTTP_NOT_FOUND) { |
| 260 SyncTaskManager::NotifyTaskDone(token.Pass(), status); | 261 SyncTaskManager::NotifyTaskDone(token.Pass(), status); |
| 261 return; | 262 return; |
| 262 } | 263 } |
| 263 | 264 |
| 264 deleted_file_ids_.push_back(file_id); | 265 deleted_file_ids_.push_back(file_id); |
| 265 if (!non_primary_file_ids_.empty()) { | 266 if (!non_primary_file_ids_.empty()) { |
| 266 RemoveNonPrimaryFiles(token.Pass()); | 267 RemoveNonPrimaryFiles(token.Pass()); |
| 267 return; | 268 return; |
| 268 } | 269 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 283 drive_service()->GetFileResource( | 284 drive_service()->GetFileResource( |
| 284 file_id, | 285 file_id, |
| 285 base::Bind(&ConflictResolver::DidGetRemoteMetadata, | 286 base::Bind(&ConflictResolver::DidGetRemoteMetadata, |
| 286 weak_ptr_factory_.GetWeakPtr(), file_id, | 287 weak_ptr_factory_.GetWeakPtr(), file_id, |
| 287 base::Passed(&token))); | 288 base::Passed(&token))); |
| 288 } | 289 } |
| 289 | 290 |
| 290 void ConflictResolver::DidGetRemoteMetadata( | 291 void ConflictResolver::DidGetRemoteMetadata( |
| 291 const std::string& file_id, | 292 const std::string& file_id, |
| 292 scoped_ptr<SyncTaskToken> token, | 293 scoped_ptr<SyncTaskToken> token, |
| 293 google_apis::GDataErrorCode error, | 294 google_apis::DriveApiErrorCode error, |
| 294 scoped_ptr<google_apis::FileResource> entry) { | 295 scoped_ptr<google_apis::FileResource> entry) { |
| 295 SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); | 296 SyncStatusCode status = DriveApiErrorCodeToSyncStatusCode(error); |
| 296 if (status != SYNC_STATUS_OK && error != google_apis::HTTP_NOT_FOUND) { | 297 if (status != SYNC_STATUS_OK && error != google_apis::HTTP_NOT_FOUND) { |
| 297 SyncTaskManager::NotifyTaskDone(token.Pass(), status); | 298 SyncTaskManager::NotifyTaskDone(token.Pass(), status); |
| 298 return; | 299 return; |
| 299 } | 300 } |
| 300 | 301 |
| 301 if (error != google_apis::HTTP_NOT_FOUND) { | 302 if (error != google_apis::HTTP_NOT_FOUND) { |
| 302 status = metadata_database()->UpdateByDeletedRemoteFile(file_id); | 303 status = metadata_database()->UpdateByDeletedRemoteFile(file_id); |
| 303 SyncTaskManager::NotifyTaskDone(token.Pass(), status); | 304 SyncTaskManager::NotifyTaskDone(token.Pass(), status); |
| 304 return; | 305 return; |
| 305 } | 306 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 318 set_used_network(true); | 319 set_used_network(true); |
| 319 return sync_context_->GetDriveService(); | 320 return sync_context_->GetDriveService(); |
| 320 } | 321 } |
| 321 | 322 |
| 322 MetadataDatabase* ConflictResolver::metadata_database() { | 323 MetadataDatabase* ConflictResolver::metadata_database() { |
| 323 return sync_context_->GetMetadataDatabase(); | 324 return sync_context_->GetMetadataDatabase(); |
| 324 } | 325 } |
| 325 | 326 |
| 326 } // namespace drive_backend | 327 } // namespace drive_backend |
| 327 } // namespace sync_file_system | 328 } // namespace sync_file_system |
| OLD | NEW |