| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/renderer/extensions/extension_frame_helper.h" | 5 #include "chrome/renderer/extensions/extension_frame_helper.h" |
| 6 | 6 |
| 7 #include "content/public/renderer/render_frame.h" | 7 #include "content/public/renderer/render_frame.h" |
| 8 #include "extensions/common/api/messaging/message.h" |
| 8 #include "extensions/common/extension_messages.h" | 9 #include "extensions/common/extension_messages.h" |
| 9 #include "extensions/renderer/console.h" | 10 #include "extensions/renderer/console.h" |
| 10 #include "extensions/renderer/dispatcher.h" | 11 #include "extensions/renderer/dispatcher.h" |
| 12 #include "extensions/renderer/messaging_bindings.h" |
| 11 #include "third_party/WebKit/public/web/WebConsoleMessage.h" | 13 #include "third_party/WebKit/public/web/WebConsoleMessage.h" |
| 12 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 14 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
| 13 | 15 |
| 14 namespace extensions { | 16 namespace extensions { |
| 15 | 17 |
| 16 ExtensionFrameHelper::ExtensionFrameHelper(content::RenderFrame* render_frame, | 18 ExtensionFrameHelper::ExtensionFrameHelper(content::RenderFrame* render_frame, |
| 17 Dispatcher* extension_dispatcher) | 19 Dispatcher* extension_dispatcher) |
| 18 : content::RenderFrameObserver(render_frame), | 20 : content::RenderFrameObserver(render_frame), |
| 19 content::RenderFrameObserverTracker<ExtensionFrameHelper>(render_frame), | 21 content::RenderFrameObserverTracker<ExtensionFrameHelper>(render_frame), |
| 20 extension_dispatcher_(extension_dispatcher) {} | 22 extension_dispatcher_(extension_dispatcher) {} |
| 21 | 23 |
| 22 ExtensionFrameHelper::~ExtensionFrameHelper() { | 24 ExtensionFrameHelper::~ExtensionFrameHelper() { |
| 23 } | 25 } |
| 24 | 26 |
| 25 void ExtensionFrameHelper::WillReleaseScriptContext( | 27 void ExtensionFrameHelper::WillReleaseScriptContext( |
| 26 v8::Handle<v8::Context> context, | 28 v8::Handle<v8::Context> context, |
| 27 int world_id) { | 29 int world_id) { |
| 28 extension_dispatcher_->WillReleaseScriptContext( | 30 extension_dispatcher_->WillReleaseScriptContext( |
| 29 render_frame()->GetWebFrame(), context, world_id); | 31 render_frame()->GetWebFrame(), context, world_id); |
| 30 } | 32 } |
| 31 | 33 |
| 32 bool ExtensionFrameHelper::OnMessageReceived(const IPC::Message& message) { | 34 bool ExtensionFrameHelper::OnMessageReceived(const IPC::Message& message) { |
| 33 bool handled = true; | 35 bool handled = true; |
| 34 IPC_BEGIN_MESSAGE_MAP(ExtensionFrameHelper, message) | 36 IPC_BEGIN_MESSAGE_MAP(ExtensionFrameHelper, message) |
| 35 IPC_MESSAGE_HANDLER(ExtensionMsg_AddMessageToConsole, | 37 IPC_MESSAGE_HANDLER(ExtensionMsg_AddMessageToConsole, |
| 36 OnAddMessageToConsole) | 38 OnAddMessageToConsole) |
| 39 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect, |
| 40 OnExtensionDispatchOnConnect) |
| 41 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage) |
| 42 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect, |
| 43 OnExtensionDispatchOnDisconnect) |
| 37 IPC_MESSAGE_UNHANDLED(handled = false) | 44 IPC_MESSAGE_UNHANDLED(handled = false) |
| 38 IPC_END_MESSAGE_MAP() | 45 IPC_END_MESSAGE_MAP() |
| 39 return handled; | 46 return handled; |
| 40 } | 47 } |
| 41 | 48 |
| 42 void ExtensionFrameHelper::OnAddMessageToConsole( | 49 void ExtensionFrameHelper::OnAddMessageToConsole( |
| 43 content::ConsoleMessageLevel level, | 50 content::ConsoleMessageLevel level, |
| 44 const std::string& message) { | 51 const std::string& message) { |
| 45 console::AddMessage(render_frame()->GetRenderView(), level, message); | 52 console::AddMessage(render_frame()->GetRenderView(), level, message); |
| 46 } | 53 } |
| 47 | 54 |
| 55 void ExtensionFrameHelper::OnExtensionDispatchOnConnect( |
| 56 int target_port_id, |
| 57 const std::string& channel_name, |
| 58 const ExtensionMsg_TabConnectionInfo& source, |
| 59 const ExtensionMsg_ExternalConnectionInfo& info, |
| 60 const std::string& tls_channel_id) { |
| 61 MessagingBindings::DispatchOnConnect( |
| 62 extension_dispatcher_->script_context_set(), |
| 63 target_port_id, |
| 64 channel_name, |
| 65 source, |
| 66 info, |
| 67 tls_channel_id, |
| 68 render_frame()); |
| 69 } |
| 70 |
| 71 void ExtensionFrameHelper::OnExtensionDeliverMessage(int target_id, |
| 72 const Message& message) { |
| 73 MessagingBindings::DeliverMessage( |
| 74 extension_dispatcher_->script_context_set(), target_id, message, |
| 75 render_frame()); |
| 76 } |
| 77 |
| 78 void ExtensionFrameHelper::OnExtensionDispatchOnDisconnect( |
| 79 int port_id, |
| 80 const std::string& error_message) { |
| 81 MessagingBindings::DispatchOnDisconnect( |
| 82 extension_dispatcher_->script_context_set(), port_id, error_message, |
| 83 render_frame()); |
| 84 } |
| 85 |
| 48 } // namespace extensions | 86 } // namespace extensions |
| OLD | NEW |