Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6065)

Unified Diff: chrome/browser/sync_file_system/sync_file_system_service.cc

Issue 268413002: [SyncFS] Make DumpFiles async (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: work for a nit Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync_file_system/sync_file_system_service.cc
diff --git a/chrome/browser/sync_file_system/sync_file_system_service.cc b/chrome/browser/sync_file_system/sync_file_system_service.cc
index 9f19c7e7a415bf882bbf793ae13024a68d977825..2811457ce12c546e76d2183e12f8efc0f0f65457 100644
--- a/chrome/browser/sync_file_system/sync_file_system_service.cc
+++ b/chrome/browser/sync_file_system/sync_file_system_service.cc
@@ -132,7 +132,7 @@ void DidGetFileSyncStatusForDump(
if (++*num_results < files->GetSize())
return;
- callback.Run(files);
+ callback.Run(*files);
}
// We need this indirection because WeakPtr can only be bound to methods
@@ -508,28 +508,36 @@ void SyncFileSystemService::DidInitializeFileSystemForDump(
DCHECK(!origin.is_empty());
if (status != SYNC_STATUS_OK) {
- base::ListValue empty_result;
- callback.Run(&empty_result);
+ callback.Run(base::ListValue());
return;
}
- base::ListValue* files =
- GetRemoteService(origin)->DumpFiles(origin).release();
- if (!files) {
- callback.Run(new base::ListValue);
- return;
- }
+ GetRemoteService(origin)->DumpFiles(
+ origin,
+ base::Bind(
+ &SyncFileSystemService::DidDumpFiles,
+ AsWeakPtr(),
+ origin,
+ callback));
+}
- if (!files->GetSize()) {
- callback.Run(files);
+void SyncFileSystemService::DidDumpFiles(
+ const GURL& origin,
+ const DumpFilesCallback& callback,
+ scoped_ptr<base::ListValue> dump_files) {
+ if (!dump_files || !dump_files->GetSize()) {
+ callback.Run(base::ListValue());
return;
}
- base::Callback<void(base::DictionaryValue* file,
- SyncStatusCode sync_status,
- SyncFileStatus sync_file_status)> completion_callback =
- base::Bind(&DidGetFileSyncStatusForDump, base::Owned(files),
- base::Owned(new size_t(0)), callback);
+ base::ListValue* files = dump_files.get();
+ base::Callback<void(base::DictionaryValue*,
+ SyncStatusCode,
+ SyncFileStatus)> completion_callback =
+ base::Bind(&DidGetFileSyncStatusForDump,
+ base::Owned(dump_files.release()),
+ base::Owned(new size_t(0)),
+ callback);
// After all metadata loaded, sync status can be added to each entry.
for (size_t i = 0; i < files->GetSize(); ++i) {

Powered by Google App Engine
This is Rietveld 408576698