Index: components/sync/driver/directory_data_type_controller.cc |
diff --git a/components/sync/driver/directory_data_type_controller.cc b/components/sync/driver/directory_data_type_controller.cc |
index 62a1720ab5ecb0ba115c70a1d80ecd9cfdfd4ac8..b80875478227e0d1c15d8406d6a7c29f1350ce65 100644 |
--- a/components/sync/driver/directory_data_type_controller.cc |
+++ b/components/sync/driver/directory_data_type_controller.cc |
@@ -4,6 +4,8 @@ |
#include "components/sync/driver/directory_data_type_controller.h" |
+#include "base/memory/ptr_util.h" |
+#include "base/threading/thread_task_runner_handle.h" |
#include "components/sync/core/user_share.h" |
#include "components/sync/driver/backend_data_type_configurer.h" |
#include "components/sync/driver/sync_service.h" |
@@ -33,6 +35,26 @@ void DirectoryDataTypeController::GetAllNodes( |
callback.Run(type(), std::move(node_list)); |
} |
+void DirectoryDataTypeController::GetStatusCounters( |
+ const StatusCountersCallback& callback) { |
+ std::vector<int> num_entries_by_type(syncer::MODEL_TYPE_COUNT, 0); |
+ std::vector<int> num_to_delete_entries_by_type(syncer::MODEL_TYPE_COUNT, 0); |
+ sync_client_->GetSyncService() |
+ ->GetUserShare() |
+ ->directory->CollectMetaHandleCounts(&num_entries_by_type, |
+ &num_to_delete_entries_by_type); |
+ syncer::StatusCounters counters; |
+ counters.num_entries_and_tombstones = num_entries_by_type[type()]; |
+ counters.num_entries = |
+ num_entries_by_type[type()] - num_to_delete_entries_by_type[type()]; |
+ |
+ // do post here even already on UI thread, because need to send real counters |
pavely
2016/10/03 21:40:14
I attempted to rewrite this comment:
We post callb
Gang Wu
2016/10/06 00:20:22
Done.
|
+ // for each data type after GetTypeStatusMap pass empty dictionary to UI. |
+ // Otherwise UI will receive real counters first, then empty data. |
+ base::ThreadTaskRunnerHandle::Get()->PostTask( |
+ FROM_HERE, base::Bind(callback, type(), counters)); |
+}; |
+ |
void DirectoryDataTypeController::RegisterWithBackend( |
BackendDataTypeConfigurer* configurer) {} |