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, |