OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "webkit/glue/plugins/webview_plugin.h" | 5 #include "webkit/glue/plugins/webview_plugin.h" |
6 | 6 |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
9 #include "third_party/WebKit/WebKit/chromium/public/WebCursorInfo.h" | 9 #include "third_party/WebKit/WebKit/chromium/public/WebCursorInfo.h" |
10 #include "third_party/WebKit/WebKit/chromium/public/WebElement.h" | 10 #include "third_party/WebKit/WebKit/chromium/public/WebElement.h" |
11 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" | 11 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" |
| 12 #include "third_party/WebKit/WebKit/chromium/public/WebInputEvent.h" |
12 #include "third_party/WebKit/WebKit/chromium/public/WebPluginContainer.h" | 13 #include "third_party/WebKit/WebKit/chromium/public/WebPluginContainer.h" |
13 #include "third_party/WebKit/WebKit/chromium/public/WebSize.h" | 14 #include "third_party/WebKit/WebKit/chromium/public/WebSize.h" |
14 #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" | 15 #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" |
15 #include "third_party/WebKit/WebKit/chromium/public/WebURLRequest.h" | 16 #include "third_party/WebKit/WebKit/chromium/public/WebURLRequest.h" |
16 #include "third_party/WebKit/WebKit/chromium/public/WebURLResponse.h" | 17 #include "third_party/WebKit/WebKit/chromium/public/WebURLResponse.h" |
17 #include "third_party/WebKit/WebKit/chromium/public/WebView.h" | 18 #include "third_party/WebKit/WebKit/chromium/public/WebView.h" |
18 #include "webkit/glue/webpreferences.h" | 19 #include "webkit/glue/webpreferences.h" |
19 | 20 |
20 #if WEBKIT_USING_CG | 21 #if WEBKIT_USING_CG |
21 #include <CoreGraphics/CGContext.h> | 22 #include <CoreGraphics/CGContext.h> |
22 #elif WEBKIT_USING_SKIA | 23 #elif WEBKIT_USING_SKIA |
23 #include "skia/ext/platform_canvas.h" | 24 #include "skia/ext/platform_canvas.h" |
24 #endif | 25 #endif |
25 | 26 |
26 using WebKit::WebCanvas; | 27 using WebKit::WebCanvas; |
27 using WebKit::WebCursorInfo; | 28 using WebKit::WebCursorInfo; |
28 using WebKit::WebDragData; | 29 using WebKit::WebDragData; |
29 using WebKit::WebDragOperationsMask; | 30 using WebKit::WebDragOperationsMask; |
30 using WebKit::WebFrame; | 31 using WebKit::WebFrame; |
31 using WebKit::WebImage; | 32 using WebKit::WebImage; |
32 using WebKit::WebInputEvent; | 33 using WebKit::WebInputEvent; |
| 34 using WebKit::WebMouseEvent; |
33 using WebKit::WebPlugin; | 35 using WebKit::WebPlugin; |
34 using WebKit::WebPluginContainer; | 36 using WebKit::WebPluginContainer; |
35 using WebKit::WebPoint; | 37 using WebKit::WebPoint; |
36 using WebKit::WebRect; | 38 using WebKit::WebRect; |
37 using WebKit::WebSize; | 39 using WebKit::WebSize; |
38 using WebKit::WebURLError; | 40 using WebKit::WebURLError; |
39 using WebKit::WebURLRequest; | 41 using WebKit::WebURLRequest; |
40 using WebKit::WebURLResponse; | 42 using WebKit::WebURLResponse; |
41 using WebKit::WebVector; | 43 using WebKit::WebVector; |
42 using WebKit::WebView; | 44 using WebKit::WebView; |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 const WebRect& frame_rect, const WebRect& clip_rect, | 138 const WebRect& frame_rect, const WebRect& clip_rect, |
137 const WebVector<WebRect>& cut_out_rects, bool is_visible) { | 139 const WebVector<WebRect>& cut_out_rects, bool is_visible) { |
138 if (frame_rect != rect_) { | 140 if (frame_rect != rect_) { |
139 rect_ = frame_rect; | 141 rect_ = frame_rect; |
140 web_view_->resize(WebSize(frame_rect.width, frame_rect.height)); | 142 web_view_->resize(WebSize(frame_rect.width, frame_rect.height)); |
141 } | 143 } |
142 } | 144 } |
143 | 145 |
144 bool WebViewPlugin::handleInputEvent(const WebInputEvent& event, | 146 bool WebViewPlugin::handleInputEvent(const WebInputEvent& event, |
145 WebCursorInfo& cursor) { | 147 WebCursorInfo& cursor) { |
| 148 if (event.type == WebInputEvent::ContextMenu) { |
| 149 if (delegate_) { |
| 150 const WebMouseEvent& mouse_event = |
| 151 reinterpret_cast<const WebMouseEvent&>(event); |
| 152 delegate_->ShowContextMenu(mouse_event); |
| 153 } |
| 154 return true; |
| 155 } |
146 current_cursor_ = cursor; | 156 current_cursor_ = cursor; |
147 bool handled = web_view_->handleInputEvent(event); | 157 bool handled = web_view_->handleInputEvent(event); |
148 cursor = current_cursor_; | 158 cursor = current_cursor_; |
149 return handled; | 159 return handled; |
150 } | 160 } |
151 | 161 |
152 void WebViewPlugin::didReceiveResponse(const WebURLResponse& response) { | 162 void WebViewPlugin::didReceiveResponse(const WebURLResponse& response) { |
153 DCHECK(response_.isNull()); | 163 DCHECK(response_.isNull()); |
154 response_ = response; | 164 response_ = response; |
155 } | 165 } |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 WebURLError WebViewPlugin::cancelledError(WebFrame* frame, | 214 WebURLError WebViewPlugin::cancelledError(WebFrame* frame, |
205 const WebURLRequest& request) { | 215 const WebURLRequest& request) { |
206 // Return an error with a non-zero reason so isNull() on the corresponding | 216 // Return an error with a non-zero reason so isNull() on the corresponding |
207 // ResourceError is false. | 217 // ResourceError is false. |
208 WebURLError error; | 218 WebURLError error; |
209 error.domain = "WebViewPlugin"; | 219 error.domain = "WebViewPlugin"; |
210 error.reason = -1; | 220 error.reason = -1; |
211 error.unreachableURL = request.url(); | 221 error.unreachableURL = request.url(); |
212 return error; | 222 return error; |
213 } | 223 } |
OLD | NEW |