| 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 "extensions/renderer/extension_frame_helper.h" | 5 #include "extensions/renderer/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/api/messaging/message.h" |
| 9 #include "extensions/common/constants.h" | 9 #include "extensions/common/constants.h" |
| 10 #include "extensions/common/extension_messages.h" | 10 #include "extensions/common/extension_messages.h" |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 | 91 |
| 92 // static | 92 // static |
| 93 bool ExtensionFrameHelper::IsContextForEventPage(const ScriptContext* context) { | 93 bool ExtensionFrameHelper::IsContextForEventPage(const ScriptContext* context) { |
| 94 content::RenderFrame* render_frame = context->GetRenderFrame(); | 94 content::RenderFrame* render_frame = context->GetRenderFrame(); |
| 95 return context->extension() && render_frame && | 95 return context->extension() && render_frame && |
| 96 BackgroundInfo::HasLazyBackgroundPage(context->extension()) && | 96 BackgroundInfo::HasLazyBackgroundPage(context->extension()) && |
| 97 ExtensionFrameHelper::Get(render_frame)->view_type() == | 97 ExtensionFrameHelper::Get(render_frame)->view_type() == |
| 98 VIEW_TYPE_EXTENSION_BACKGROUND_PAGE; | 98 VIEW_TYPE_EXTENSION_BACKGROUND_PAGE; |
| 99 } | 99 } |
| 100 | 100 |
| 101 // static |
| 102 content::RenderFrame* ExtensionFrameHelper::RenderFrameForContext( |
| 103 const ScriptContext* context) { |
| 104 for (const ExtensionFrameHelper* helper : g_frame_helpers.Get()) { |
| 105 if (context->GetRenderFrame() == helper->render_frame()) |
| 106 return helper->render_frame(); |
| 107 } |
| 108 return nullptr; |
| 109 } |
| 110 |
| 101 void ExtensionFrameHelper::DidCreateScriptContext( | 111 void ExtensionFrameHelper::DidCreateScriptContext( |
| 102 v8::Local<v8::Context> context, | 112 v8::Local<v8::Context> context, |
| 103 int extension_group, | 113 int extension_group, |
| 104 int world_id) { | 114 int world_id) { |
| 105 extension_dispatcher_->DidCreateScriptContext( | 115 extension_dispatcher_->DidCreateScriptContext( |
| 106 render_frame()->GetWebFrame(), context, extension_group, world_id); | 116 render_frame()->GetWebFrame(), context, extension_group, world_id); |
| 107 } | 117 } |
| 108 | 118 |
| 109 void ExtensionFrameHelper::WillReleaseScriptContext( | 119 void ExtensionFrameHelper::WillReleaseScriptContext( |
| 110 v8::Local<v8::Context> context, | 120 v8::Local<v8::Context> context, |
| 111 int world_id) { | 121 int world_id) { |
| 112 extension_dispatcher_->WillReleaseScriptContext( | 122 extension_dispatcher_->WillReleaseScriptContext( |
| 113 render_frame()->GetWebFrame(), context, world_id); | 123 render_frame()->GetWebFrame(), context, world_id); |
| 114 } | 124 } |
| 115 | 125 |
| 116 bool ExtensionFrameHelper::OnMessageReceived(const IPC::Message& message) { | 126 bool ExtensionFrameHelper::OnMessageReceived(const IPC::Message& message) { |
| 117 bool handled = true; | 127 bool handled = true; |
| 118 IPC_BEGIN_MESSAGE_MAP(ExtensionFrameHelper, message) | 128 IPC_BEGIN_MESSAGE_MAP(ExtensionFrameHelper, message) |
| 119 IPC_MESSAGE_HANDLER(ExtensionMsg_AddMessageToConsole, | |
| 120 OnAddMessageToConsole) | |
| 121 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect, | 129 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect, |
| 122 OnExtensionDispatchOnConnect) | 130 OnExtensionDispatchOnConnect) |
| 123 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage) | 131 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage) |
| 124 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect, | 132 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect, |
| 125 OnExtensionDispatchOnDisconnect) | 133 OnExtensionDispatchOnDisconnect) |
| 126 IPC_MESSAGE_HANDLER(ExtensionMsg_SetTabId, OnExtensionSetTabId) | 134 IPC_MESSAGE_HANDLER(ExtensionMsg_SetTabId, OnExtensionSetTabId) |
| 127 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateBrowserWindowId, | 135 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateBrowserWindowId, |
| 128 OnUpdateBrowserWindowId) | 136 OnUpdateBrowserWindowId) |
| 129 IPC_MESSAGE_HANDLER(ExtensionMsg_SetMainFrameExtensionOwner, | 137 IPC_MESSAGE_HANDLER(ExtensionMsg_SetMainFrameExtensionOwner, |
| 130 OnSetMainFrameExtensionOwner) | 138 OnSetMainFrameExtensionOwner) |
| 131 IPC_MESSAGE_HANDLER(ExtensionMsg_NotifyRenderViewType, | 139 IPC_MESSAGE_HANDLER(ExtensionMsg_NotifyRenderViewType, |
| 132 OnNotifyRendererViewType) | 140 OnNotifyRendererViewType) |
| 133 IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse) | 141 IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse) |
| 134 IPC_MESSAGE_UNHANDLED(handled = false) | 142 IPC_MESSAGE_UNHANDLED(handled = false) |
| 135 IPC_END_MESSAGE_MAP() | 143 IPC_END_MESSAGE_MAP() |
| 136 return handled; | 144 return handled; |
| 137 } | 145 } |
| 138 | 146 |
| 139 void ExtensionFrameHelper::OnAddMessageToConsole( | |
| 140 content::ConsoleMessageLevel level, | |
| 141 const std::string& message) { | |
| 142 console::AddMessage(render_frame()->GetRenderView(), level, message); | |
| 143 } | |
| 144 | |
| 145 void ExtensionFrameHelper::OnExtensionDispatchOnConnect( | 147 void ExtensionFrameHelper::OnExtensionDispatchOnConnect( |
| 146 int target_port_id, | 148 int target_port_id, |
| 147 const std::string& channel_name, | 149 const std::string& channel_name, |
| 148 const ExtensionMsg_TabConnectionInfo& source, | 150 const ExtensionMsg_TabConnectionInfo& source, |
| 149 const ExtensionMsg_ExternalConnectionInfo& info, | 151 const ExtensionMsg_ExternalConnectionInfo& info, |
| 150 const std::string& tls_channel_id) { | 152 const std::string& tls_channel_id) { |
| 151 MessagingBindings::DispatchOnConnect( | 153 MessagingBindings::DispatchOnConnect( |
| 152 extension_dispatcher_->script_context_set(), | 154 extension_dispatcher_->script_context_set(), |
| 153 target_port_id, | 155 target_port_id, |
| 154 channel_name, | 156 channel_name, |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 bool success, | 200 bool success, |
| 199 const base::ListValue& response, | 201 const base::ListValue& response, |
| 200 const std::string& error) { | 202 const std::string& error) { |
| 201 extension_dispatcher_->OnExtensionResponse(request_id, | 203 extension_dispatcher_->OnExtensionResponse(request_id, |
| 202 success, | 204 success, |
| 203 response, | 205 response, |
| 204 error); | 206 error); |
| 205 } | 207 } |
| 206 | 208 |
| 207 } // namespace extensions | 209 } // namespace extensions |
| OLD | NEW |