| 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 "components/plugins/renderer/webview_plugin.h" | 5 #include "components/plugins/renderer/webview_plugin.h" |
| 6 | 6 |
| 7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
| 8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "base/numerics/safe_conversions.h" | 9 #include "base/numerics/safe_conversions.h" |
| 10 #include "content/public/renderer/web_preferences.h" | 10 #include "content/public/common/web_preferences.h" |
| 11 #include "content/public/renderer/render_view.h" |
| 11 #include "skia/ext/platform_canvas.h" | 12 #include "skia/ext/platform_canvas.h" |
| 12 #include "third_party/WebKit/public/platform/WebSize.h" | 13 #include "third_party/WebKit/public/platform/WebSize.h" |
| 13 #include "third_party/WebKit/public/platform/WebURL.h" | 14 #include "third_party/WebKit/public/platform/WebURL.h" |
| 14 #include "third_party/WebKit/public/platform/WebURLRequest.h" | 15 #include "third_party/WebKit/public/platform/WebURLRequest.h" |
| 15 #include "third_party/WebKit/public/platform/WebURLResponse.h" | 16 #include "third_party/WebKit/public/platform/WebURLResponse.h" |
| 16 #include "third_party/WebKit/public/web/WebDocument.h" | 17 #include "third_party/WebKit/public/web/WebDocument.h" |
| 17 #include "third_party/WebKit/public/web/WebElement.h" | 18 #include "third_party/WebKit/public/web/WebElement.h" |
| 18 #include "third_party/WebKit/public/web/WebInputEvent.h" | 19 #include "third_party/WebKit/public/web/WebInputEvent.h" |
| 19 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 20 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
| 20 #include "third_party/WebKit/public/web/WebPluginContainer.h" | 21 #include "third_party/WebKit/public/web/WebPluginContainer.h" |
| 21 #include "third_party/WebKit/public/web/WebView.h" | 22 #include "third_party/WebKit/public/web/WebView.h" |
| 22 #include "webkit/common/webpreferences.h" | |
| 23 | 23 |
| 24 using blink::WebCanvas; | 24 using blink::WebCanvas; |
| 25 using blink::WebCursorInfo; | 25 using blink::WebCursorInfo; |
| 26 using blink::WebDragData; | 26 using blink::WebDragData; |
| 27 using blink::WebDragOperationsMask; | 27 using blink::WebDragOperationsMask; |
| 28 using blink::WebImage; | 28 using blink::WebImage; |
| 29 using blink::WebInputEvent; | 29 using blink::WebInputEvent; |
| 30 using blink::WebLocalFrame; | 30 using blink::WebLocalFrame; |
| 31 using blink::WebMouseEvent; | 31 using blink::WebMouseEvent; |
| 32 using blink::WebPlugin; | 32 using blink::WebPlugin; |
| 33 using blink::WebPluginContainer; | 33 using blink::WebPluginContainer; |
| 34 using blink::WebPoint; | 34 using blink::WebPoint; |
| 35 using blink::WebRect; | 35 using blink::WebRect; |
| 36 using blink::WebSize; | 36 using blink::WebSize; |
| 37 using blink::WebString; | 37 using blink::WebString; |
| 38 using blink::WebURLError; | 38 using blink::WebURLError; |
| 39 using blink::WebURLRequest; | 39 using blink::WebURLRequest; |
| 40 using blink::WebURLResponse; | 40 using blink::WebURLResponse; |
| 41 using blink::WebVector; | 41 using blink::WebVector; |
| 42 using blink::WebView; | 42 using blink::WebView; |
| 43 using content::WebPreferences; |
| 43 | 44 |
| 44 WebViewPlugin::WebViewPlugin(WebViewPlugin::Delegate* delegate, | 45 WebViewPlugin::WebViewPlugin(WebViewPlugin::Delegate* delegate, |
| 46 content::RenderView* render_view, |
| 45 const WebPreferences& preferences) | 47 const WebPreferences& preferences) |
| 46 : delegate_(delegate), | 48 : delegate_(delegate), |
| 47 container_(NULL), | 49 container_(NULL), |
| 48 web_view_(WebView::create(this)), | 50 web_view_(WebView::create(this)), |
| 49 finished_loading_(false), | 51 finished_loading_(false), |
| 50 focused_(false) { | 52 focused_(false) { |
| 51 // ApplyWebPreferences before making a WebLocalFrame so that the frame sees a | 53 // ApplyWebPreferences before making a WebLocalFrame so that the frame sees a |
| 52 // consistent view of our preferences. | 54 // consistent view of our preferences. |
| 53 content::ApplyWebPreferences(preferences, web_view_); | 55 render_view->ApplyWebPreferences(preferences); |
| 54 web_frame_ = WebLocalFrame::create(this); | 56 web_frame_ = WebLocalFrame::create(this); |
| 55 web_view_->setMainFrame(web_frame_); | 57 web_view_->setMainFrame(web_frame_); |
| 56 } | 58 } |
| 57 | 59 |
| 58 // static | 60 // static |
| 59 WebViewPlugin* WebViewPlugin::Create(WebViewPlugin::Delegate* delegate, | 61 WebViewPlugin* WebViewPlugin::Create(WebViewPlugin::Delegate* delegate, |
| 62 content::RenderView* render_view, |
| 60 const WebPreferences& preferences, | 63 const WebPreferences& preferences, |
| 61 const std::string& html_data, | 64 const std::string& html_data, |
| 62 const GURL& url) { | 65 const GURL& url) { |
| 63 WebViewPlugin* plugin = new WebViewPlugin(delegate, preferences); | 66 WebViewPlugin* plugin = new WebViewPlugin(delegate, render_view, preferences); |
| 64 plugin->web_view()->mainFrame()->loadHTMLString(html_data, url); | 67 plugin->web_view()->mainFrame()->loadHTMLString(html_data, url); |
| 65 return plugin; | 68 return plugin; |
| 66 } | 69 } |
| 67 | 70 |
| 68 WebViewPlugin::~WebViewPlugin() { | 71 WebViewPlugin::~WebViewPlugin() { |
| 69 web_view_->close(); | 72 web_view_->close(); |
| 70 web_frame_->close(); | 73 web_frame_->close(); |
| 71 } | 74 } |
| 72 | 75 |
| 73 void WebViewPlugin::ReplayReceivedData(WebPlugin* plugin) { | 76 void WebViewPlugin::ReplayReceivedData(WebPlugin* plugin) { |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 void WebViewPlugin::didClearWindowObject(WebLocalFrame* frame) { | 240 void WebViewPlugin::didClearWindowObject(WebLocalFrame* frame) { |
| 238 if (delegate_) | 241 if (delegate_) |
| 239 delegate_->BindWebFrame(frame); | 242 delegate_->BindWebFrame(frame); |
| 240 } | 243 } |
| 241 | 244 |
| 242 void WebViewPlugin::didReceiveResponse(WebLocalFrame* frame, | 245 void WebViewPlugin::didReceiveResponse(WebLocalFrame* frame, |
| 243 unsigned identifier, | 246 unsigned identifier, |
| 244 const WebURLResponse& response) { | 247 const WebURLResponse& response) { |
| 245 WebFrameClient::didReceiveResponse(frame, identifier, response); | 248 WebFrameClient::didReceiveResponse(frame, identifier, response); |
| 246 } | 249 } |
| OLD | NEW |