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

Unified Diff: chrome/browser/extensions/api/messaging/message_service.cc

Issue 16226004: Replace JSON (de)serialization of extension messages with direct Value pickling. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 6 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/extensions/api/messaging/message_service.cc
diff --git a/chrome/browser/extensions/api/messaging/message_service.cc b/chrome/browser/extensions/api/messaging/message_service.cc
index 169e1b5096d77db22049b9280999d039f45ae008..3d374b7a4513dec3774e52ea679ba1fe05b70017 100644
--- a/chrome/browser/extensions/api/messaging/message_service.cc
+++ b/chrome/browser/extensions/api/messaging/message_service.cc
@@ -6,6 +6,7 @@
#include "base/atomic_sequence_num.h"
#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/callback.h"
#include "base/json/json_writer.h"
#include "base/lazy_instance.h"
@@ -429,7 +430,7 @@ void MessageService::CloseChannelImpl(
}
void MessageService::PostMessage(
- int source_port_id, const std::string& message) {
+ int source_port_id, scoped_ptr<base::ListValue> message) {
int channel_id = GET_CHANNEL_ID(source_port_id);
MessageChannelMap::iterator iter = channels_.find(channel_id);
if (iter == channels_.end()) {
@@ -440,7 +441,9 @@ void MessageService::PostMessage(
lazy_background_task_queue_->AddPendingTask(
pending->second.first, pending->second.second,
base::Bind(&MessageService::PendingPostMessage,
- weak_factory_.GetWeakPtr(), source_port_id, message));
+ weak_factory_.GetWeakPtr(),
+ source_port_id,
+ base::Passed(&message)));
}
return;
}
@@ -450,12 +453,13 @@ void MessageService::PostMessage(
MessagePort* port = IS_OPENER_PORT_ID(dest_port_id) ?
iter->second->opener.get() : iter->second->receiver.get();
- port->DispatchOnMessage(message, dest_port_id);
+ port->DispatchOnMessage(message.Pass(), dest_port_id);
}
-void MessageService::PostMessageFromNativeProcess(int port_id,
- const std::string& message) {
- PostMessage(port_id, message);
+void MessageService::PostMessageFromNativeProcess(
+ int port_id,
+ scoped_ptr<base::ListValue> message) {
+ PostMessage(port_id, message.Pass());
}
void MessageService::Observe(int type,

Powered by Google App Engine
This is Rietveld 408576698