| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_helper.h" | 5 #include "extensions/renderer/extension_helper.h" |
| 6 | 6 |
| 7 #include "content/public/renderer/render_view.h" | 7 #include "content/public/renderer/render_view.h" |
| 8 #include "content/public/renderer/render_view_visitor.h" | 8 #include "content/public/renderer/render_view_visitor.h" |
| 9 #include "extensions/common/api/messaging/message.h" | |
| 10 #include "extensions/common/constants.h" | 9 #include "extensions/common/constants.h" |
| 11 #include "extensions/common/extension_messages.h" | 10 #include "extensions/common/extension_messages.h" |
| 12 #include "extensions/renderer/api/automation/automation_api_helper.h" | 11 #include "extensions/renderer/api/automation/automation_api_helper.h" |
| 13 #include "extensions/renderer/console.h" | 12 #include "extensions/renderer/console.h" |
| 14 #include "extensions/renderer/dispatcher.h" | 13 #include "extensions/renderer/dispatcher.h" |
| 15 #include "extensions/renderer/messaging_bindings.h" | |
| 16 #include "third_party/WebKit/public/platform/WebURLRequest.h" | 14 #include "third_party/WebKit/public/platform/WebURLRequest.h" |
| 17 #include "third_party/WebKit/public/web/WebConsoleMessage.h" | 15 #include "third_party/WebKit/public/web/WebConsoleMessage.h" |
| 18 #include "third_party/WebKit/public/web/WebDocument.h" | 16 #include "third_party/WebKit/public/web/WebDocument.h" |
| 19 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 17 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
| 20 #include "third_party/WebKit/public/web/WebView.h" | 18 #include "third_party/WebKit/public/web/WebView.h" |
| 21 | 19 |
| 22 using content::ConsoleMessageLevel; | 20 using content::ConsoleMessageLevel; |
| 23 using blink::WebConsoleMessage; | 21 using blink::WebConsoleMessage; |
| 24 using blink::WebDataSource; | 22 using blink::WebDataSource; |
| 25 using blink::WebFrame; | 23 using blink::WebFrame; |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 } | 126 } |
| 129 | 127 |
| 130 ExtensionHelper::~ExtensionHelper() { | 128 ExtensionHelper::~ExtensionHelper() { |
| 131 } | 129 } |
| 132 | 130 |
| 133 bool ExtensionHelper::OnMessageReceived(const IPC::Message& message) { | 131 bool ExtensionHelper::OnMessageReceived(const IPC::Message& message) { |
| 134 bool handled = true; | 132 bool handled = true; |
| 135 IPC_BEGIN_MESSAGE_MAP(ExtensionHelper, message) | 133 IPC_BEGIN_MESSAGE_MAP(ExtensionHelper, message) |
| 136 IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse) | 134 IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse) |
| 137 IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke) | 135 IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke) |
| 138 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect, | |
| 139 OnExtensionDispatchOnConnect) | |
| 140 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage) | |
| 141 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect, | |
| 142 OnExtensionDispatchOnDisconnect) | |
| 143 IPC_MESSAGE_HANDLER(ExtensionMsg_SetFrameName, OnSetFrameName) | 136 IPC_MESSAGE_HANDLER(ExtensionMsg_SetFrameName, OnSetFrameName) |
| 144 IPC_MESSAGE_HANDLER(ExtensionMsg_SetTabId, OnSetTabId) | 137 IPC_MESSAGE_HANDLER(ExtensionMsg_SetTabId, OnSetTabId) |
| 145 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateBrowserWindowId, | 138 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateBrowserWindowId, |
| 146 OnUpdateBrowserWindowId) | 139 OnUpdateBrowserWindowId) |
| 147 IPC_MESSAGE_HANDLER(ExtensionMsg_NotifyRenderViewType, | 140 IPC_MESSAGE_HANDLER(ExtensionMsg_NotifyRenderViewType, |
| 148 OnNotifyRendererViewType) | 141 OnNotifyRendererViewType) |
| 149 IPC_MESSAGE_HANDLER(ExtensionMsg_AddMessageToConsole, | 142 IPC_MESSAGE_HANDLER(ExtensionMsg_AddMessageToConsole, |
| 150 OnAddMessageToConsole) | 143 OnAddMessageToConsole) |
| 151 IPC_MESSAGE_HANDLER(ExtensionMsg_AppWindowClosed, | 144 IPC_MESSAGE_HANDLER(ExtensionMsg_AppWindowClosed, |
| 152 OnAppWindowClosed) | 145 OnAppWindowClosed) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 void ExtensionHelper::OnExtensionMessageInvoke(const std::string& extension_id, | 186 void ExtensionHelper::OnExtensionMessageInvoke(const std::string& extension_id, |
| 194 const std::string& module_name, | 187 const std::string& module_name, |
| 195 const std::string& function_name, | 188 const std::string& function_name, |
| 196 const base::ListValue& args, | 189 const base::ListValue& args, |
| 197 bool user_gesture) { | 190 bool user_gesture) { |
| 198 dispatcher_->InvokeModuleSystemMethod( | 191 dispatcher_->InvokeModuleSystemMethod( |
| 199 render_view(), extension_id, module_name, function_name, args, | 192 render_view(), extension_id, module_name, function_name, args, |
| 200 user_gesture); | 193 user_gesture); |
| 201 } | 194 } |
| 202 | 195 |
| 203 void ExtensionHelper::OnExtensionDispatchOnConnect( | |
| 204 int target_port_id, | |
| 205 const std::string& channel_name, | |
| 206 const base::DictionaryValue& source_tab, | |
| 207 const ExtensionMsg_ExternalConnectionInfo& info, | |
| 208 const std::string& tls_channel_id) { | |
| 209 MessagingBindings::DispatchOnConnect(dispatcher_->script_context_set(), | |
| 210 target_port_id, | |
| 211 channel_name, | |
| 212 source_tab, | |
| 213 info, | |
| 214 tls_channel_id, | |
| 215 render_view()); | |
| 216 } | |
| 217 | |
| 218 void ExtensionHelper::OnExtensionDeliverMessage(int target_id, | |
| 219 const Message& message) { | |
| 220 MessagingBindings::DeliverMessage( | |
| 221 dispatcher_->script_context_set(), target_id, message, render_view()); | |
| 222 } | |
| 223 | |
| 224 void ExtensionHelper::OnExtensionDispatchOnDisconnect( | |
| 225 int port_id, | |
| 226 const std::string& error_message) { | |
| 227 MessagingBindings::DispatchOnDisconnect( | |
| 228 dispatcher_->script_context_set(), port_id, error_message, render_view()); | |
| 229 } | |
| 230 | |
| 231 void ExtensionHelper::OnNotifyRendererViewType(ViewType type) { | 196 void ExtensionHelper::OnNotifyRendererViewType(ViewType type) { |
| 232 view_type_ = type; | 197 view_type_ = type; |
| 233 } | 198 } |
| 234 | 199 |
| 235 void ExtensionHelper::OnSetFrameName(const std::string& name) { | 200 void ExtensionHelper::OnSetFrameName(const std::string& name) { |
| 236 blink::WebView* web_view = render_view()->GetWebView(); | 201 blink::WebView* web_view = render_view()->GetWebView(); |
| 237 if (web_view) | 202 if (web_view) |
| 238 web_view->mainFrame()->setName(blink::WebString::fromUTF8(name)); | 203 web_view->mainFrame()->setName(blink::WebString::fromUTF8(name)); |
| 239 } | 204 } |
| 240 | 205 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 259 render_view()->GetWebView()->mainFrame()->mainWorldScriptContext(); | 224 render_view()->GetWebView()->mainFrame()->mainWorldScriptContext(); |
| 260 ScriptContext* script_context = | 225 ScriptContext* script_context = |
| 261 dispatcher_->script_context_set().GetByV8Context(v8_context); | 226 dispatcher_->script_context_set().GetByV8Context(v8_context); |
| 262 if (!script_context) | 227 if (!script_context) |
| 263 return; | 228 return; |
| 264 script_context->module_system()->CallModuleMethod("app.window", | 229 script_context->module_system()->CallModuleMethod("app.window", |
| 265 "onAppWindowClosed"); | 230 "onAppWindowClosed"); |
| 266 } | 231 } |
| 267 | 232 |
| 268 } // namespace extensions | 233 } // namespace extensions |
| OLD | NEW |