Chromium Code Reviews| 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() { |