| 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..f8edd4d7c004d30f545b184caabb2d5687e15247 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,13 @@ bool DirectoryDataTypeController::ShouldLoadModelBeforeConfigure() const {
|
| return false;
|
| }
|
|
|
| +void DirectoryDataTypeController::GetAllNodes(
|
| + const AllNodesCallback& callback) {
|
| + std::unique_ptr<base::ListValue> node_list = GetAllNodesForTypeFromDirectory(
|
| + type(), sync_client_->GetSyncService()->GetUserShare()->directory.get());
|
| + callback.Run(type(), std::move(node_list));
|
| +}
|
| +
|
| void DirectoryDataTypeController::RegisterWithBackend(
|
| BackendDataTypeConfigurer* configurer) {}
|
|
|
| @@ -38,4 +50,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
|
|
|