summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authorrob <rob@robwu.nl>2014-11-20 18:04:48 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-21 02:05:12 +0000
commit248d6a8456fdf67fa11be00e35105642f1871a9b (patch)
treeb8f3e127cab0e2442c249f47f426b8cef737d6b5 /chrome/renderer
parent8327f71beb19d287e8367e3e6df2dc55ebf984fa (diff)
downloadchromium_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.cc38
-rw-r--r--chrome/renderer/extensions/extension_frame_helper.h14
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_;