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

Unified Diff: chrome/browser/ui/webui/sync_internals_message_handler.cc

Issue 224563004: sync: Re-implement getAllNodes WebUI function (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Style fixes + comments Created 6 years, 9 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: chrome/browser/ui/webui/sync_internals_message_handler.cc
diff --git a/chrome/browser/ui/webui/sync_internals_message_handler.cc b/chrome/browser/ui/webui/sync_internals_message_handler.cc
index e7869c2f321c2880f898df4ace2228d6826f9ed0..aafa415d6bdc79e71ec14e666866ecc3aaa624a2 100644
--- a/chrome/browser/ui/webui/sync_internals_message_handler.cc
+++ b/chrome/browser/ui/webui/sync_internals_message_handler.cc
@@ -15,12 +15,9 @@
#include "content/public/browser/web_ui.h"
#include "sync/internal_api/public/events/protocol_event.h"
#include "sync/internal_api/public/util/weak_handle.h"
-#include "sync/js/js_arg_list.h"
#include "sync/js/js_event_details.h"
-using syncer::JsArgList;
using syncer::JsEventDetails;
-using syncer::JsReplyHandler;
using syncer::ModelTypeSet;
using syncer::WeakHandle;
@@ -56,7 +53,10 @@ void SyncInternalsMessageHandler::RegisterMessages() {
base::Bind(&SyncInternalsMessageHandler::HandleRequestListOfTypes,
base::Unretained(this)));
- RegisterJsControllerCallback("getAllNodes");
+ web_ui()->RegisterMessageCallback(
+ "getAllNodes",
+ base::Bind(&SyncInternalsMessageHandler::HandleGetAllNodes,
+ base::Unretained(this)));
}
void SyncInternalsMessageHandler::HandleRegisterForEvents(
@@ -95,14 +95,31 @@ void SyncInternalsMessageHandler::HandleRequestListOfTypes(
event_details);
}
-void SyncInternalsMessageHandler::HandleJsReply(
- const std::string& name, const JsArgList& args) {
- DVLOG(1) << "Handling reply for " << name << " message"
- << " with args " << args.ToString();
- const std::string& reply_handler = "chrome.sync." + name + ".handleReply";
- std::vector<const base::Value*> arg_list(args.Get().begin(),
- args.Get().end());
- web_ui()->CallJavascriptFunction(reply_handler, arg_list);
+void SyncInternalsMessageHandler::HandleGetAllNodes(
+ const base::ListValue* args) {
+ DCHECK_EQ(1U, args->GetSize());
+ const base::Value* request_id;
Dan Beam 2014/04/04 22:36:31 can you use more specific type here? is this a st
rlarocque 2014/04/05 00:07:27 For a while I toyed with the idea of allowing any
+ args->Get(0, &request_id);
Dan Beam 2014/04/04 22:36:31 bool success = args->Get(0, &request_id); DCHECK(s
rlarocque 2014/04/05 00:07:27 Done.
+
+ ProfileSyncService* service = GetProfileSyncService();
+ if (service) {
+ service->GetAllNodes(
+ base::Bind(&SyncInternalsMessageHandler::OnReceivedAllNodes,
+ weak_ptr_factory_.GetWeakPtr(),
+ Passed(scoped_ptr<base::Value>(request_id->DeepCopy()))));
+ }
+}
+
+void SyncInternalsMessageHandler::OnReceivedAllNodes(
+ scoped_ptr<base::Value> request_id,
+ scoped_ptr<base::ListValue> nodes) {
+ base::ListValue response_args;
+ response_args.Append(request_id.release());
+ response_args.Append(nodes.release());
+
+ web_ui()->CallJavascriptFunction(
+ "chrome.sync.getAllNodesCallback",
+ response_args);
Dan Beam 2014/04/04 22:36:31 nit: web_ui()->CallJavascriptFunction("chrome.syn
}
void SyncInternalsMessageHandler::OnStateChanged() {
@@ -129,15 +146,6 @@ void SyncInternalsMessageHandler::HandleJsEvent(
details.Get());
}
-void SyncInternalsMessageHandler::RegisterJsControllerCallback(
- const std::string& name) {
- web_ui()->RegisterMessageCallback(
- name,
- base::Bind(&SyncInternalsMessageHandler::ForwardToJsController,
- base::Unretained(this),
- name));
-}
-
void SyncInternalsMessageHandler::SendAboutInfo() {
scoped_ptr<base::DictionaryValue> value =
sync_ui_util::ConstructAboutInformation(GetProfileSyncService());
@@ -147,20 +155,6 @@ void SyncInternalsMessageHandler::SendAboutInfo() {
*value);
}
-void SyncInternalsMessageHandler::ForwardToJsController(
- const std::string& name,
- const base::ListValue* args) {
- if (js_controller_) {
- scoped_ptr<base::ListValue> args_copy(args->DeepCopy());
- JsArgList js_arg_list(args_copy.get());
- js_controller_->ProcessJsMessage(
- name, js_arg_list,
- MakeWeakHandle(weak_ptr_factory_.GetWeakPtr()));
- } else {
- DLOG(WARNING) << "No sync service; dropping message " << name;
- }
-}
-
// Gets the ProfileSyncService of the underlying original profile.
// May return NULL (e.g., if sync is disabled on the command line).
ProfileSyncService* SyncInternalsMessageHandler::GetProfileSyncService() {

Powered by Google App Engine
This is Rietveld 408576698