| 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 921b22525dfa9d595292b4c7c39444a47ebd6562..59412fc07d01b69ee42b4b16c33112a7c57c3e7c 100644
|
| --- a/chrome/browser/renderer_host/chrome_extension_message_filter.cc
|
| +++ b/chrome/browser/renderer_host/chrome_extension_message_filter.cc
|
| @@ -86,10 +86,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,
|
| @@ -105,8 +106,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:
|
| @@ -194,6 +196,7 @@ void ChromeExtensionMessageFilter::OpenChannelToNativeAppOnUIThread(
|
| }
|
|
|
| void ChromeExtensionMessageFilter::OnOpenChannelToTab(
|
| + int routing_id,
|
| const ExtensionMsg_TabTargetConnectionInfo& info,
|
| const std::string& extension_id,
|
| const std::string& channel_name,
|
| @@ -204,12 +207,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,
|
| @@ -218,6 +222,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,
|
| @@ -226,6 +231,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) {
|
| @@ -261,21 +285,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) {
|
|
|