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

Unified Diff: components/sync/driver/directory_data_type_controller.cc

Issue 2276943006: [USS] Move GetAllNodes from backend to controller (Closed)
Patch Set: remove task runnner Created 4 years, 4 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: 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

Powered by Google App Engine
This is Rietveld 408576698