diff options
author | rob <rob@robwu.nl> | 2014-11-20 18:04:48 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-21 02:05:12 +0000 |
commit | 248d6a8456fdf67fa11be00e35105642f1871a9b (patch) | |
tree | b8f3e127cab0e2442c249f47f426b8cef737d6b5 /chrome/renderer | |
parent | 8327f71beb19d287e8367e3e6df2dc55ebf984fa (diff) | |
download | chromium_src-248d6a8456fdf67fa11be00e35105642f1871a9b.zip chromium_src-248d6a8456fdf67fa11be00e35105642f1871a9b.tar.gz chromium_src-248d6a8456fdf67fa11be00e35105642f1871a9b.tar.bz2 |
Add frameId to MessageSender (extension messaging API).
Moved IPC for extension messaging from RenderView to RenderFrame.
BUG=264286
R=kalman@chromium.org
Review URL: https://codereview.chromium.org/709933002
Cr-Commit-Position: refs/heads/master@{#305148}
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/extensions/extension_frame_helper.cc | 38 | ||||
-rw-r--r-- | chrome/renderer/extensions/extension_frame_helper.h | 14 |
2 files changed, 52 insertions, 0 deletions
diff --git a/chrome/renderer/extensions/extension_frame_helper.cc b/chrome/renderer/extensions/extension_frame_helper.cc index 7ee0e21..ef0e953 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 diff --git a/chrome/renderer/extensions/extension_frame_helper.h b/chrome/renderer/extensions/extension_frame_helper.h index 7f414e7..0668c80 100644 --- a/chrome/renderer/extensions/extension_frame_helper.h +++ b/chrome/renderer/extensions/extension_frame_helper.h @@ -9,9 +9,13 @@ #include "content/public/renderer/render_frame_observer.h" #include "content/public/renderer/render_frame_observer_tracker.h" +struct ExtensionMsg_ExternalConnectionInfo; +struct ExtensionMsg_TabConnectionInfo; + namespace extensions { class Dispatcher; +struct Message; // RenderFrame-level plumbing for extension features. class ExtensionFrameHelper @@ -30,6 +34,16 @@ class ExtensionFrameHelper // IPC handlers. void OnAddMessageToConsole(content::ConsoleMessageLevel level, const std::string& message); + void OnExtensionDispatchOnConnect( + int target_port_id, + const std::string& channel_name, + const ExtensionMsg_TabConnectionInfo& source, + const ExtensionMsg_ExternalConnectionInfo& info, + const std::string& tls_channel_id); + void OnExtensionDeliverMessage(int target_port_id, + const Message& message); + void OnExtensionDispatchOnDisconnect(int port_id, + const std::string& error_message); Dispatcher* extension_dispatcher_; |