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 2a4c332c65080980be45b1425dd8f1bdbe41fc7d..d66a86895b84c5ade6362713b653b942e1869e81 100644 |
| --- a/components/sync/driver/directory_data_type_controller.cc |
| +++ b/components/sync/driver/directory_data_type_controller.cc |
| @@ -4,14 +4,19 @@ |
| #include "components/sync/driver/directory_data_type_controller.h" |
| +#include "components/sync/core/user_share.h" |
| #include "components/sync/driver/backend_data_type_configurer.h" |
| +#include "components/sync/driver/sync_service.h" |
| +#include "components/sync/syncable/syncable_read_transaction.h" |
| namespace sync_driver { |
| DirectoryDataTypeController::DirectoryDataTypeController( |
| const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread, |
| - const base::Closure& error_callback) |
| - : DataTypeController(ui_thread, error_callback) {} |
| + const base::Closure& error_callback, |
| + SyncClient* sync_client) |
| + : DataTypeController(ui_thread, error_callback), |
| + sync_client_(sync_client) {} |
| DirectoryDataTypeController::~DirectoryDataTypeController() {} |
| @@ -22,6 +27,17 @@ bool DirectoryDataTypeController::ShouldLoadModelBeforeConfigure() const { |
| return false; |
| } |
| +void DirectoryDataTypeController::GetAllNodes( |
| + const AllNodesCallback& callback) { |
| + std::unique_ptr<base::ListValue> node_list; |
| + if (state() == DataTypeController::DISABLED) { |
|
pavely
2016/08/26 23:17:09
I think you meant (state() != DISABLED).
state ==
|
| + node_list = GetAllNodesForTypeFromDirectory( |
| + type(), |
| + sync_client_->GetSyncService()->GetUserShare()->directory.get()); |
| + } |
| + callback.Run(type(), std::move(node_list)); |
| +} |
| + |
| void DirectoryDataTypeController::RegisterWithBackend( |
| BackendDataTypeConfigurer* configurer) {} |
| @@ -38,4 +54,14 @@ void DirectoryDataTypeController::DeactivateDataType( |
| configurer->DeactivateDirectoryDataType(type()); |
| } |
| +// static |
| +std::unique_ptr<base::ListValue> |
| +DirectoryDataTypeController::GetAllNodesForTypeFromDirectory( |
| + syncer::ModelType type, |
| + syncer::syncable::Directory* directory) { |
| + DCHECK(directory); |
| + syncer::syncable::ReadTransaction trans(FROM_HERE, directory); |
| + return directory->GetNodeDetailsForType(&trans, type); |
| +} |
| + |
| } // namespace sync_driver |