OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_helper.h" | 5 #include "chrome/renderer/extensions/extension_helper.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/json/json_string_value_serializer.h" | 10 #include "base/json/json_string_value_serializer.h" |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 return accumulator.views()[0]; | 137 return accumulator.views()[0]; |
138 } | 138 } |
139 | 139 |
140 ExtensionHelper::ExtensionHelper(content::RenderView* render_view, | 140 ExtensionHelper::ExtensionHelper(content::RenderView* render_view, |
141 ExtensionDispatcher* extension_dispatcher) | 141 ExtensionDispatcher* extension_dispatcher) |
142 : content::RenderViewObserver(render_view), | 142 : content::RenderViewObserver(render_view), |
143 content::RenderViewObserverTracker<ExtensionHelper>(render_view), | 143 content::RenderViewObserverTracker<ExtensionHelper>(render_view), |
144 extension_dispatcher_(extension_dispatcher), | 144 extension_dispatcher_(extension_dispatcher), |
145 pending_app_icon_requests_(0), | 145 pending_app_icon_requests_(0), |
146 view_type_(chrome::VIEW_TYPE_INVALID), | 146 view_type_(chrome::VIEW_TYPE_INVALID), |
| 147 tab_id_(-1), |
147 browser_window_id_(-1) { | 148 browser_window_id_(-1) { |
148 } | 149 } |
149 | 150 |
150 ExtensionHelper::~ExtensionHelper() { | 151 ExtensionHelper::~ExtensionHelper() { |
151 } | 152 } |
152 | 153 |
153 bool ExtensionHelper::InstallWebApplicationUsingDefinitionFile( | 154 bool ExtensionHelper::InstallWebApplicationUsingDefinitionFile( |
154 WebFrame* frame, string16* error) { | 155 WebFrame* frame, string16* error) { |
155 // There is an issue of drive-by installs with the below implementation. A web | 156 // There is an issue of drive-by installs with the below implementation. A web |
156 // site could force a user to install an app by timing the dialog to come up | 157 // site could force a user to install an app by timing the dialog to come up |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 IPC_BEGIN_MESSAGE_MAP(ExtensionHelper, message) | 203 IPC_BEGIN_MESSAGE_MAP(ExtensionHelper, message) |
203 IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse) | 204 IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse) |
204 IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke) | 205 IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke) |
205 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect, | 206 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect, |
206 OnExtensionDispatchOnConnect) | 207 OnExtensionDispatchOnConnect) |
207 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage) | 208 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage) |
208 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect, | 209 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect, |
209 OnExtensionDispatchOnDisconnect) | 210 OnExtensionDispatchOnDisconnect) |
210 IPC_MESSAGE_HANDLER(ExtensionMsg_ExecuteCode, OnExecuteCode) | 211 IPC_MESSAGE_HANDLER(ExtensionMsg_ExecuteCode, OnExecuteCode) |
211 IPC_MESSAGE_HANDLER(ExtensionMsg_GetApplicationInfo, OnGetApplicationInfo) | 212 IPC_MESSAGE_HANDLER(ExtensionMsg_GetApplicationInfo, OnGetApplicationInfo) |
| 213 IPC_MESSAGE_HANDLER(ExtensionMsg_SetTabId, OnSetTabId) |
212 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateBrowserWindowId, | 214 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateBrowserWindowId, |
213 OnUpdateBrowserWindowId) | 215 OnUpdateBrowserWindowId) |
214 IPC_MESSAGE_HANDLER(ExtensionMsg_NotifyRenderViewType, | 216 IPC_MESSAGE_HANDLER(ExtensionMsg_NotifyRenderViewType, |
215 OnNotifyRendererViewType) | 217 OnNotifyRendererViewType) |
216 IPC_MESSAGE_UNHANDLED(handled = false) | 218 IPC_MESSAGE_UNHANDLED(handled = false) |
217 IPC_END_MESSAGE_MAP() | 219 IPC_END_MESSAGE_MAP() |
218 return handled; | 220 return handled; |
219 } | 221 } |
220 | 222 |
221 void ExtensionHelper::DidFinishDocumentLoad(WebFrame* frame) { | 223 void ExtensionHelper::DidFinishDocumentLoad(WebFrame* frame) { |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 } | 368 } |
367 | 369 |
368 Send(new ExtensionHostMsg_DidGetApplicationInfo( | 370 Send(new ExtensionHostMsg_DidGetApplicationInfo( |
369 routing_id(), page_id, app_info)); | 371 routing_id(), page_id, app_info)); |
370 } | 372 } |
371 | 373 |
372 void ExtensionHelper::OnNotifyRendererViewType(chrome::ViewType type) { | 374 void ExtensionHelper::OnNotifyRendererViewType(chrome::ViewType type) { |
373 view_type_ = type; | 375 view_type_ = type; |
374 } | 376 } |
375 | 377 |
| 378 void ExtensionHelper::OnSetTabId(int init_tab_id) { |
| 379 CHECK_EQ(tab_id_, -1); |
| 380 CHECK_GE(init_tab_id, 0); |
| 381 tab_id_ = init_tab_id; |
| 382 } |
| 383 |
376 void ExtensionHelper::OnUpdateBrowserWindowId(int window_id) { | 384 void ExtensionHelper::OnUpdateBrowserWindowId(int window_id) { |
377 browser_window_id_ = window_id; | 385 browser_window_id_ = window_id; |
378 } | 386 } |
379 | 387 |
380 void ExtensionHelper::DidDownloadApplicationDefinition( | 388 void ExtensionHelper::DidDownloadApplicationDefinition( |
381 const WebKit::WebURLResponse& response, | 389 const WebKit::WebURLResponse& response, |
382 const std::string& data) { | 390 const std::string& data) { |
383 scoped_ptr<WebApplicationInfo> app_info( | 391 scoped_ptr<WebApplicationInfo> app_info( |
384 pending_app_info_.release()); | 392 pending_app_info_.release()); |
385 | 393 |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
469 routing_id(), *pending_app_info_)); | 477 routing_id(), *pending_app_info_)); |
470 pending_app_info_.reset(NULL); | 478 pending_app_info_.reset(NULL); |
471 } | 479 } |
472 | 480 |
473 void ExtensionHelper::AddErrorToRootConsole(const string16& message) { | 481 void ExtensionHelper::AddErrorToRootConsole(const string16& message) { |
474 if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame()) { | 482 if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame()) { |
475 render_view()->GetWebView()->mainFrame()->addMessageToConsole( | 483 render_view()->GetWebView()->mainFrame()->addMessageToConsole( |
476 WebConsoleMessage(WebConsoleMessage::LevelError, message)); | 484 WebConsoleMessage(WebConsoleMessage::LevelError, message)); |
477 } | 485 } |
478 } | 486 } |
OLD | NEW |