| Index: chrome/renderer/extensions/extension_frame_helper.cc
 | 
| diff --git a/chrome/renderer/extensions/extension_frame_helper.cc b/chrome/renderer/extensions/extension_frame_helper.cc
 | 
| index 7ee0e21e35b718a0052fcd74c11b3428de698c86..ef0e95372fd44d9fee34f18c8e649b7a813b9e54 100644
 | 
| --- a/chrome/renderer/extensions/extension_frame_helper.cc
 | 
| +++ b/chrome/renderer/extensions/extension_frame_helper.cc
 | 
| @@ -5,9 +5,11 @@
 | 
|  #include "chrome/renderer/extensions/extension_frame_helper.h"
 | 
|  
 | 
|  #include "content/public/renderer/render_frame.h"
 | 
| +#include "extensions/common/api/messaging/message.h"
 | 
|  #include "extensions/common/extension_messages.h"
 | 
|  #include "extensions/renderer/console.h"
 | 
|  #include "extensions/renderer/dispatcher.h"
 | 
| +#include "extensions/renderer/messaging_bindings.h"
 | 
|  #include "third_party/WebKit/public/web/WebConsoleMessage.h"
 | 
|  #include "third_party/WebKit/public/web/WebLocalFrame.h"
 | 
|  
 | 
| @@ -34,6 +36,11 @@ bool ExtensionFrameHelper::OnMessageReceived(const IPC::Message& message) {
 | 
|    IPC_BEGIN_MESSAGE_MAP(ExtensionFrameHelper, message)
 | 
|      IPC_MESSAGE_HANDLER(ExtensionMsg_AddMessageToConsole,
 | 
|                          OnAddMessageToConsole)
 | 
| +    IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect,
 | 
| +                        OnExtensionDispatchOnConnect)
 | 
| +    IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage)
 | 
| +    IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect,
 | 
| +                        OnExtensionDispatchOnDisconnect)
 | 
|      IPC_MESSAGE_UNHANDLED(handled = false)
 | 
|    IPC_END_MESSAGE_MAP()
 | 
|    return handled;
 | 
| @@ -45,4 +52,35 @@ void ExtensionFrameHelper::OnAddMessageToConsole(
 | 
|    console::AddMessage(render_frame()->GetRenderView(), level, message);
 | 
|  }
 | 
|  
 | 
| +void ExtensionFrameHelper::OnExtensionDispatchOnConnect(
 | 
| +    int target_port_id,
 | 
| +    const std::string& channel_name,
 | 
| +    const ExtensionMsg_TabConnectionInfo& source,
 | 
| +    const ExtensionMsg_ExternalConnectionInfo& info,
 | 
| +    const std::string& tls_channel_id) {
 | 
| +  MessagingBindings::DispatchOnConnect(
 | 
| +      extension_dispatcher_->script_context_set(),
 | 
| +      target_port_id,
 | 
| +      channel_name,
 | 
| +      source,
 | 
| +      info,
 | 
| +      tls_channel_id,
 | 
| +      render_frame());
 | 
| +}
 | 
| +
 | 
| +void ExtensionFrameHelper::OnExtensionDeliverMessage(int target_id,
 | 
| +                                                     const Message& message) {
 | 
| +  MessagingBindings::DeliverMessage(
 | 
| +      extension_dispatcher_->script_context_set(), target_id, message,
 | 
| +      render_frame());
 | 
| +}
 | 
| +
 | 
| +void ExtensionFrameHelper::OnExtensionDispatchOnDisconnect(
 | 
| +    int port_id,
 | 
| +    const std::string& error_message) {
 | 
| +  MessagingBindings::DispatchOnDisconnect(
 | 
| +      extension_dispatcher_->script_context_set(), port_id, error_message,
 | 
| +      render_frame());
 | 
| +}
 | 
| +
 | 
|  }  // namespace extensions
 | 
| 
 |