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 <stddef.h> | 7 #include <stddef.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
173 } | 173 } |
174 | 174 |
175 if (!file_list) { | 175 if (!file_list) { |
176 NOTREACHED(); | 176 NOTREACHED(); |
177 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 177 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
178 "[Initialize] Got invalid resource list."); | 178 "[Initialize] Got invalid resource list."); |
179 SyncTaskManager::NotifyTaskDone(std::move(token), SYNC_STATUS_FAILED); | 179 SyncTaskManager::NotifyTaskDone(std::move(token), SYNC_STATUS_FAILED); |
180 return; | 180 return; |
181 } | 181 } |
182 | 182 |
183 ScopedVector<google_apis::FileResource>* items = file_list->mutable_items(); | 183 std::vector<std::unique_ptr<google_apis::FileResource>>* items = |
184 for (ScopedVector<google_apis::FileResource>::iterator itr = items->begin(); | 184 file_list->mutable_items(); |
185 itr != items->end(); ++itr) { | 185 for (auto& entry : *items) { |
186 google_apis::FileResource* entry = *itr; | |
187 | |
188 // Ignore deleted folder. | 186 // Ignore deleted folder. |
189 if (entry->labels().is_trashed()) | 187 if (entry->labels().is_trashed()) |
190 continue; | 188 continue; |
191 | 189 |
192 // Pick an orphaned folder or a direct child of the root folder and | 190 // Pick an orphaned folder or a direct child of the root folder and |
193 // ignore others. | 191 // ignore others. |
194 DCHECK(!root_folder_id_.empty()); | 192 DCHECK(!root_folder_id_.empty()); |
195 if (!HasNoParents(*entry) && !HasFolderAsParent(*entry, root_folder_id_)) | 193 if (!HasNoParents(*entry) && !HasFolderAsParent(*entry, root_folder_id_)) |
196 continue; | 194 continue; |
197 | 195 |
198 if (entry->shared()) | 196 if (entry->shared()) |
199 continue; | 197 continue; |
200 | 198 |
201 if (!sync_root_folder_ || LessOnCreationTime(*entry, *sync_root_folder_)) { | 199 if (!sync_root_folder_ || LessOnCreationTime(*entry, *sync_root_folder_)) { |
202 sync_root_folder_.reset(entry); | 200 sync_root_folder_ = std::move(entry); |
203 *itr = nullptr; | |
204 } | 201 } |
205 } | 202 } |
206 | 203 |
207 set_used_network(true); | 204 set_used_network(true); |
208 // If there are more results, retrieve them. | 205 // If there are more results, retrieve them. |
209 if (!file_list->next_link().is_empty()) { | 206 if (!file_list->next_link().is_empty()) { |
210 cancel_callback_ = sync_context_->GetDriveService()->GetRemainingFileList( | 207 cancel_callback_ = sync_context_->GetDriveService()->GetRemainingFileList( |
211 file_list->next_link(), | 208 file_list->next_link(), |
212 base::Bind(&SyncEngineInitializer::DidFindSyncRoot, | 209 base::Bind(&SyncEngineInitializer::DidFindSyncRoot, |
213 weak_ptr_factory_.GetWeakPtr(), | 210 weak_ptr_factory_.GetWeakPtr(), |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
314 } | 311 } |
315 | 312 |
316 if (!file_list) { | 313 if (!file_list) { |
317 NOTREACHED(); | 314 NOTREACHED(); |
318 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 315 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
319 "[Initialize] Got invalid initial app-root list."); | 316 "[Initialize] Got invalid initial app-root list."); |
320 SyncTaskManager::NotifyTaskDone(std::move(token), SYNC_STATUS_FAILED); | 317 SyncTaskManager::NotifyTaskDone(std::move(token), SYNC_STATUS_FAILED); |
321 return; | 318 return; |
322 } | 319 } |
323 | 320 |
324 ScopedVector<google_apis::FileResource>* new_entries = | 321 std::vector<std::unique_ptr<google_apis::FileResource>>* new_entries = |
325 file_list->mutable_items(); | 322 file_list->mutable_items(); |
326 app_root_folders_.insert(app_root_folders_.end(), | 323 app_root_folders_.insert(app_root_folders_.end(), |
327 new_entries->begin(), new_entries->end()); | 324 std::make_move_iterator(new_entries->begin()), |
328 new_entries->weak_clear(); | 325 std::make_move_iterator(new_entries->end())); |
Avi (use Gerrit)
2017/01/09 17:18:29
Same question here about move + back_iterator and
leonhsl(Using Gerrit)
2017/01/10 04:39:36
Done.
| |
326 new_entries->clear(); | |
329 | 327 |
330 set_used_network(true); | 328 set_used_network(true); |
331 if (!file_list->next_link().is_empty()) { | 329 if (!file_list->next_link().is_empty()) { |
332 cancel_callback_ = | 330 cancel_callback_ = |
333 sync_context_->GetDriveService()->GetRemainingFileList( | 331 sync_context_->GetDriveService()->GetRemainingFileList( |
334 file_list->next_link(), | 332 file_list->next_link(), |
335 base::Bind(&SyncEngineInitializer::DidListAppRootFolders, | 333 base::Bind(&SyncEngineInitializer::DidListAppRootFolders, |
336 weak_ptr_factory_.GetWeakPtr(), base::Passed(&token))); | 334 weak_ptr_factory_.GetWeakPtr(), base::Passed(&token))); |
337 return; | 335 return; |
338 } | 336 } |
(...skipping 14 matching lines...) Expand all Loading... | |
353 return; | 351 return; |
354 } | 352 } |
355 | 353 |
356 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 354 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
357 "[Initialize] Completed successfully."); | 355 "[Initialize] Completed successfully."); |
358 SyncTaskManager::NotifyTaskDone(std::move(token), SYNC_STATUS_OK); | 356 SyncTaskManager::NotifyTaskDone(std::move(token), SYNC_STATUS_OK); |
359 } | 357 } |
360 | 358 |
361 } // namespace drive_backend | 359 } // namespace drive_backend |
362 } // namespace sync_file_system | 360 } // namespace sync_file_system |
OLD | NEW |