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

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: Comment fix 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..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() {
« no previous file with comments | « chrome/browser/ui/webui/sync_internals_message_handler.h ('k') | sync/engine/directory_type_debug_info_emitter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698