| 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/sync_engine_initializer.
h" | 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.
h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "chrome/browser/drive/drive_api_service.h" | 10 #include "chrome/browser/drive/drive_api_service.h" |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 void SyncEngineInitializer::GetAboutResource( | 109 void SyncEngineInitializer::GetAboutResource( |
| 110 scoped_ptr<SyncTaskToken> token) { | 110 scoped_ptr<SyncTaskToken> token) { |
| 111 set_used_network(true); | 111 set_used_network(true); |
| 112 sync_context_->GetDriveService()->GetAboutResource( | 112 sync_context_->GetDriveService()->GetAboutResource( |
| 113 base::Bind(&SyncEngineInitializer::DidGetAboutResource, | 113 base::Bind(&SyncEngineInitializer::DidGetAboutResource, |
| 114 weak_ptr_factory_.GetWeakPtr(), base::Passed(&token))); | 114 weak_ptr_factory_.GetWeakPtr(), base::Passed(&token))); |
| 115 } | 115 } |
| 116 | 116 |
| 117 void SyncEngineInitializer::DidGetAboutResource( | 117 void SyncEngineInitializer::DidGetAboutResource( |
| 118 scoped_ptr<SyncTaskToken> token, | 118 scoped_ptr<SyncTaskToken> token, |
| 119 google_apis::GDataErrorCode error, | 119 google_apis::DriveApiErrorCode error, |
| 120 scoped_ptr<google_apis::AboutResource> about_resource) { | 120 scoped_ptr<google_apis::AboutResource> about_resource) { |
| 121 cancel_callback_.Reset(); | 121 cancel_callback_.Reset(); |
| 122 | 122 |
| 123 SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); | 123 SyncStatusCode status = DriveApiErrorCodeToSyncStatusCode(error); |
| 124 if (status != SYNC_STATUS_OK) { | 124 if (status != SYNC_STATUS_OK) { |
| 125 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 125 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
| 126 "[Initialize] Failed to get AboutResource."); | 126 "[Initialize] Failed to get AboutResource."); |
| 127 SyncTaskManager::NotifyTaskDone(token.Pass(), status); | 127 SyncTaskManager::NotifyTaskDone(token.Pass(), status); |
| 128 return; | 128 return; |
| 129 } | 129 } |
| 130 | 130 |
| 131 DCHECK(about_resource); | 131 DCHECK(about_resource); |
| 132 root_folder_id_ = about_resource->root_folder_id(); | 132 root_folder_id_ = about_resource->root_folder_id(); |
| 133 largest_change_id_ = about_resource->largest_change_id(); | 133 largest_change_id_ = about_resource->largest_change_id(); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 148 cancel_callback_ = sync_context_->GetDriveService()->SearchByTitle( | 148 cancel_callback_ = sync_context_->GetDriveService()->SearchByTitle( |
| 149 kSyncRootFolderTitle, | 149 kSyncRootFolderTitle, |
| 150 std::string(), // parent_folder_id | 150 std::string(), // parent_folder_id |
| 151 base::Bind(&SyncEngineInitializer::DidFindSyncRoot, | 151 base::Bind(&SyncEngineInitializer::DidFindSyncRoot, |
| 152 weak_ptr_factory_.GetWeakPtr(), | 152 weak_ptr_factory_.GetWeakPtr(), |
| 153 base::Passed(&token))); | 153 base::Passed(&token))); |
| 154 } | 154 } |
| 155 | 155 |
| 156 void SyncEngineInitializer::DidFindSyncRoot( | 156 void SyncEngineInitializer::DidFindSyncRoot( |
| 157 scoped_ptr<SyncTaskToken> token, | 157 scoped_ptr<SyncTaskToken> token, |
| 158 google_apis::GDataErrorCode error, | 158 google_apis::DriveApiErrorCode error, |
| 159 scoped_ptr<google_apis::FileList> file_list) { | 159 scoped_ptr<google_apis::FileList> file_list) { |
| 160 cancel_callback_.Reset(); | 160 cancel_callback_.Reset(); |
| 161 | 161 |
| 162 SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); | 162 SyncStatusCode status = DriveApiErrorCodeToSyncStatusCode(error); |
| 163 if (status != SYNC_STATUS_OK) { | 163 if (status != SYNC_STATUS_OK) { |
| 164 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 164 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
| 165 "[Initialize] Failed to find sync root."); | 165 "[Initialize] Failed to find sync root."); |
| 166 SyncTaskManager::NotifyTaskDone(token.Pass(), status); | 166 SyncTaskManager::NotifyTaskDone(token.Pass(), status); |
| 167 return; | 167 return; |
| 168 } | 168 } |
| 169 | 169 |
| 170 if (!file_list) { | 170 if (!file_list) { |
| 171 NOTREACHED(); | 171 NOTREACHED(); |
| 172 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 172 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 cancel_callback_ = sync_context_->GetDriveService()->AddNewDirectory( | 226 cancel_callback_ = sync_context_->GetDriveService()->AddNewDirectory( |
| 227 root_folder_id_, kSyncRootFolderTitle, | 227 root_folder_id_, kSyncRootFolderTitle, |
| 228 drive::DriveServiceInterface::AddNewDirectoryOptions(), | 228 drive::DriveServiceInterface::AddNewDirectoryOptions(), |
| 229 base::Bind(&SyncEngineInitializer::DidCreateSyncRoot, | 229 base::Bind(&SyncEngineInitializer::DidCreateSyncRoot, |
| 230 weak_ptr_factory_.GetWeakPtr(), | 230 weak_ptr_factory_.GetWeakPtr(), |
| 231 base::Passed(&token))); | 231 base::Passed(&token))); |
| 232 } | 232 } |
| 233 | 233 |
| 234 void SyncEngineInitializer::DidCreateSyncRoot( | 234 void SyncEngineInitializer::DidCreateSyncRoot( |
| 235 scoped_ptr<SyncTaskToken> token, | 235 scoped_ptr<SyncTaskToken> token, |
| 236 google_apis::GDataErrorCode error, | 236 google_apis::DriveApiErrorCode error, |
| 237 scoped_ptr<google_apis::FileResource> entry) { | 237 scoped_ptr<google_apis::FileResource> entry) { |
| 238 DCHECK(!sync_root_folder_); | 238 DCHECK(!sync_root_folder_); |
| 239 cancel_callback_.Reset(); | 239 cancel_callback_.Reset(); |
| 240 | 240 |
| 241 SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); | 241 SyncStatusCode status = DriveApiErrorCodeToSyncStatusCode(error); |
| 242 if (status != SYNC_STATUS_OK) { | 242 if (status != SYNC_STATUS_OK) { |
| 243 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 243 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
| 244 "[Initialize] Failed to create sync root."); | 244 "[Initialize] Failed to create sync root."); |
| 245 SyncTaskManager::NotifyTaskDone(token.Pass(), status); | 245 SyncTaskManager::NotifyTaskDone(token.Pass(), status); |
| 246 return; | 246 return; |
| 247 } | 247 } |
| 248 | 248 |
| 249 FindSyncRoot(token.Pass()); | 249 FindSyncRoot(token.Pass()); |
| 250 } | 250 } |
| 251 | 251 |
| 252 void SyncEngineInitializer::DetachSyncRoot(scoped_ptr<SyncTaskToken> token) { | 252 void SyncEngineInitializer::DetachSyncRoot(scoped_ptr<SyncTaskToken> token) { |
| 253 DCHECK(sync_root_folder_); | 253 DCHECK(sync_root_folder_); |
| 254 set_used_network(true); | 254 set_used_network(true); |
| 255 cancel_callback_ = | 255 cancel_callback_ = |
| 256 sync_context_->GetDriveService()->RemoveResourceFromDirectory( | 256 sync_context_->GetDriveService()->RemoveResourceFromDirectory( |
| 257 root_folder_id_, | 257 root_folder_id_, |
| 258 sync_root_folder_->file_id(), | 258 sync_root_folder_->file_id(), |
| 259 base::Bind(&SyncEngineInitializer::DidDetachSyncRoot, | 259 base::Bind(&SyncEngineInitializer::DidDetachSyncRoot, |
| 260 weak_ptr_factory_.GetWeakPtr(), | 260 weak_ptr_factory_.GetWeakPtr(), |
| 261 base::Passed(&token))); | 261 base::Passed(&token))); |
| 262 } | 262 } |
| 263 | 263 |
| 264 void SyncEngineInitializer::DidDetachSyncRoot( | 264 void SyncEngineInitializer::DidDetachSyncRoot( |
| 265 scoped_ptr<SyncTaskToken> token, | 265 scoped_ptr<SyncTaskToken> token, |
| 266 google_apis::GDataErrorCode error) { | 266 google_apis::DriveApiErrorCode error) { |
| 267 cancel_callback_.Reset(); | 267 cancel_callback_.Reset(); |
| 268 | 268 |
| 269 SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); | 269 SyncStatusCode status = DriveApiErrorCodeToSyncStatusCode(error); |
| 270 if (status != SYNC_STATUS_OK) { | 270 if (status != SYNC_STATUS_OK) { |
| 271 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 271 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
| 272 "[Initialize] Failed to detach sync root."); | 272 "[Initialize] Failed to detach sync root."); |
| 273 SyncTaskManager::NotifyTaskDone(token.Pass(), status); | 273 SyncTaskManager::NotifyTaskDone(token.Pass(), status); |
| 274 return; | 274 return; |
| 275 } | 275 } |
| 276 | 276 |
| 277 ListAppRootFolders(token.Pass()); | 277 ListAppRootFolders(token.Pass()); |
| 278 } | 278 } |
| 279 | 279 |
| 280 void SyncEngineInitializer::ListAppRootFolders( | 280 void SyncEngineInitializer::ListAppRootFolders( |
| 281 scoped_ptr<SyncTaskToken> token) { | 281 scoped_ptr<SyncTaskToken> token) { |
| 282 DCHECK(sync_root_folder_); | 282 DCHECK(sync_root_folder_); |
| 283 set_used_network(true); | 283 set_used_network(true); |
| 284 cancel_callback_ = | 284 cancel_callback_ = |
| 285 sync_context_->GetDriveService()->GetFileListInDirectory( | 285 sync_context_->GetDriveService()->GetFileListInDirectory( |
| 286 sync_root_folder_->file_id(), | 286 sync_root_folder_->file_id(), |
| 287 base::Bind(&SyncEngineInitializer::DidListAppRootFolders, | 287 base::Bind(&SyncEngineInitializer::DidListAppRootFolders, |
| 288 weak_ptr_factory_.GetWeakPtr(), | 288 weak_ptr_factory_.GetWeakPtr(), |
| 289 base::Passed(&token))); | 289 base::Passed(&token))); |
| 290 } | 290 } |
| 291 | 291 |
| 292 void SyncEngineInitializer::DidListAppRootFolders( | 292 void SyncEngineInitializer::DidListAppRootFolders( |
| 293 scoped_ptr<SyncTaskToken> token, | 293 scoped_ptr<SyncTaskToken> token, |
| 294 google_apis::GDataErrorCode error, | 294 google_apis::DriveApiErrorCode error, |
| 295 scoped_ptr<google_apis::FileList> file_list) { | 295 scoped_ptr<google_apis::FileList> file_list) { |
| 296 cancel_callback_.Reset(); | 296 cancel_callback_.Reset(); |
| 297 | 297 |
| 298 SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); | 298 SyncStatusCode status = DriveApiErrorCodeToSyncStatusCode(error); |
| 299 if (status != SYNC_STATUS_OK) { | 299 if (status != SYNC_STATUS_OK) { |
| 300 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 300 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
| 301 "[Initialize] Failed to get initial app-root folders."); | 301 "[Initialize] Failed to get initial app-root folders."); |
| 302 SyncTaskManager::NotifyTaskDone(token.Pass(), status); | 302 SyncTaskManager::NotifyTaskDone(token.Pass(), status); |
| 303 return; | 303 return; |
| 304 } | 304 } |
| 305 | 305 |
| 306 if (!file_list) { | 306 if (!file_list) { |
| 307 NOTREACHED(); | 307 NOTREACHED(); |
| 308 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 308 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 return; | 343 return; |
| 344 } | 344 } |
| 345 | 345 |
| 346 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 346 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
| 347 "[Initialize] Completed successfully."); | 347 "[Initialize] Completed successfully."); |
| 348 SyncTaskManager::NotifyTaskDone(token.Pass(), SYNC_STATUS_OK); | 348 SyncTaskManager::NotifyTaskDone(token.Pass(), SYNC_STATUS_OK); |
| 349 } | 349 } |
| 350 | 350 |
| 351 } // namespace drive_backend | 351 } // namespace drive_backend |
| 352 } // namespace sync_file_system | 352 } // namespace sync_file_system |
| OLD | NEW |