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 |