Chromium Code Reviews| 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) {} |