| Index: chrome/browser/renderer_host/chrome_extension_message_filter.cc
|
| diff --git a/chrome/browser/renderer_host/chrome_extension_message_filter.cc b/chrome/browser/renderer_host/chrome_extension_message_filter.cc
|
| index a09871357796e9d19d257414095b9b422bc627a9..a0ae53cccb512a45dd470e2e1c613452cd41badc 100644
|
| --- a/chrome/browser/renderer_host/chrome_extension_message_filter.cc
|
| +++ b/chrome/browser/renderer_host/chrome_extension_message_filter.cc
|
| @@ -84,10 +84,11 @@ bool ChromeExtensionMessageFilter::OnMessageReceived(
|
| IPC_MESSAGE_HANDLER(ExtensionHostMsg_OpenChannelToTab, OnOpenChannelToTab)
|
| IPC_MESSAGE_HANDLER(ExtensionHostMsg_OpenChannelToNativeApp,
|
| OnOpenChannelToNativeApp)
|
| + IPC_MESSAGE_HANDLER(ExtensionHostMsg_OpenMessagePort, OnOpenMessagePort)
|
| + IPC_MESSAGE_HANDLER(ExtensionHostMsg_CloseMessagePort, OnCloseMessagePort)
|
| IPC_MESSAGE_HANDLER(ExtensionHostMsg_PostMessage, OnPostMessage)
|
| IPC_MESSAGE_HANDLER_DELAY_REPLY(ExtensionHostMsg_GetMessageBundle,
|
| OnGetExtMessageBundle)
|
| - IPC_MESSAGE_HANDLER(ExtensionHostMsg_CloseChannel, OnExtensionCloseChannel)
|
| IPC_MESSAGE_HANDLER(ExtensionHostMsg_AddAPIActionToActivityLog,
|
| OnAddAPIActionToExtensionActivityLog);
|
| IPC_MESSAGE_HANDLER(ExtensionHostMsg_AddDOMActionToActivityLog,
|
| @@ -103,8 +104,9 @@ bool ChromeExtensionMessageFilter::OnMessageReceived(
|
| void ChromeExtensionMessageFilter::OverrideThreadForMessage(
|
| const IPC::Message& message, BrowserThread::ID* thread) {
|
| switch (message.type()) {
|
| + case ExtensionHostMsg_OpenMessagePort::ID:
|
| + case ExtensionHostMsg_CloseMessagePort::ID:
|
| case ExtensionHostMsg_PostMessage::ID:
|
| - case ExtensionHostMsg_CloseChannel::ID:
|
| case ExtensionHostMsg_AddAPIActionToActivityLog::ID:
|
| case ExtensionHostMsg_AddDOMActionToActivityLog::ID:
|
| case ExtensionHostMsg_AddEventToActivityLog::ID:
|
| @@ -192,6 +194,7 @@ void ChromeExtensionMessageFilter::OpenChannelToNativeAppOnUIThread(
|
| }
|
|
|
| void ChromeExtensionMessageFilter::OnOpenChannelToTab(
|
| + int routing_id,
|
| const ExtensionMsg_TabTargetConnectionInfo& info,
|
| const std::string& extension_id,
|
| const std::string& channel_name,
|
| @@ -202,12 +205,13 @@ void ChromeExtensionMessageFilter::OnOpenChannelToTab(
|
| BrowserThread::PostTask(
|
| BrowserThread::UI, FROM_HERE,
|
| base::Bind(&ChromeExtensionMessageFilter::OpenChannelToTabOnUIThread,
|
| - this, render_process_id_, port2_id, info, extension_id,
|
| - channel_name));
|
| + this, render_process_id_, routing_id, port2_id, info,
|
| + extension_id, channel_name));
|
| }
|
|
|
| void ChromeExtensionMessageFilter::OpenChannelToTabOnUIThread(
|
| int source_process_id,
|
| + int source_routing_id,
|
| int receiver_port_id,
|
| const ExtensionMsg_TabTargetConnectionInfo& info,
|
| const std::string& extension_id,
|
| @@ -216,6 +220,7 @@ void ChromeExtensionMessageFilter::OpenChannelToTabOnUIThread(
|
| if (profile_) {
|
| extensions::MessageService::Get(profile_)
|
| ->OpenChannelToTab(source_process_id,
|
| + source_routing_id,
|
| receiver_port_id,
|
| info.tab_id,
|
| info.frame_id,
|
| @@ -224,6 +229,25 @@ void ChromeExtensionMessageFilter::OpenChannelToTabOnUIThread(
|
| }
|
| }
|
|
|
| +void ChromeExtensionMessageFilter::OnOpenMessagePort(int routing_id,
|
| + int port_id) {
|
| + if (!profile_)
|
| + return;
|
| +
|
| + extensions::MessageService::Get(profile_)->OpenPort(
|
| + port_id, render_process_id_, routing_id);
|
| +}
|
| +
|
| +void ChromeExtensionMessageFilter::OnCloseMessagePort(int routing_id,
|
| + int port_id,
|
| + bool force_close) {
|
| + if (!profile_)
|
| + return;
|
| +
|
| + extensions::MessageService::Get(profile_)->ClosePort(
|
| + port_id, render_process_id_, routing_id, force_close);
|
| +}
|
| +
|
| void ChromeExtensionMessageFilter::OnPostMessage(
|
| int port_id,
|
| const extensions::Message& message) {
|
| @@ -259,21 +283,6 @@ void ChromeExtensionMessageFilter::OnGetExtMessageBundleOnBlockingPool(
|
| Send(reply_msg);
|
| }
|
|
|
| -void ChromeExtensionMessageFilter::OnExtensionCloseChannel(
|
| - int port_id,
|
| - const std::string& error_message) {
|
| - if (!profile_)
|
| - return;
|
| -
|
| - if (!content::RenderProcessHost::FromID(render_process_id_))
|
| - return; // To guard against crash in browser_tests shutdown.
|
| -
|
| - extensions::MessageService* message_service =
|
| - extensions::MessageService::Get(profile_);
|
| - if (message_service)
|
| - message_service->CloseChannel(port_id, error_message);
|
| -}
|
| -
|
| void ChromeExtensionMessageFilter::OnAddAPIActionToExtensionActivityLog(
|
| const std::string& extension_id,
|
| const ExtensionHostMsg_APIActionOrEvent_Params& params) {
|
|
|