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..3d4ddefc3add8251704a1a28e1fe7d2521188a1c 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,30 @@ 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()); |
+ int request_id = 0; |
+ bool success = args->GetInteger(0, &request_id); |
+ DCHECK(success); |
+ |
+ ProfileSyncService* service = GetProfileSyncService(); |
+ if (service) { |
+ service->GetAllNodes( |
+ base::Bind(&SyncInternalsMessageHandler::OnReceivedAllNodes, |
+ weak_ptr_factory_.GetWeakPtr(), request_id)); |
+ } |
+} |
+ |
+void SyncInternalsMessageHandler::OnReceivedAllNodes( |
+ int request_id, |
+ scoped_ptr<base::ListValue> nodes) { |
+ base::ListValue response_args; |
+ response_args.Append(new base::FundamentalValue(request_id)); |
+ response_args.Append(nodes.release()); |
+ |
+ web_ui()->CallJavascriptFunction("chrome.sync.getAllNodesCallback", |
+ response_args); |
} |
void SyncInternalsMessageHandler::OnStateChanged() { |
@@ -129,15 +145,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 +154,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() { |