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