| 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 "content/browser/web_contents/web_contents_view_guest.h" | 5 #include "content/browser/web_contents/web_contents_view_guest.h" |
| 6 | 6 |
| 7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
| 8 #include "content/browser/browser_plugin/browser_plugin_embedder.h" | 8 #include "content/browser/browser_plugin/browser_plugin_embedder.h" |
| 9 #include "content/browser/browser_plugin/browser_plugin_guest.h" | 9 #include "content/browser/browser_plugin/browser_plugin_guest.h" |
| 10 #include "content/browser/frame_host/interstitial_page_impl.h" | 10 #include "content/browser/frame_host/interstitial_page_impl.h" |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 if (view) | 210 if (view) |
| 211 view->UpdateDragCursor(operation); | 211 view->UpdateDragCursor(operation); |
| 212 } | 212 } |
| 213 | 213 |
| 214 void WebContentsViewGuest::GotFocus() { | 214 void WebContentsViewGuest::GotFocus() { |
| 215 } | 215 } |
| 216 | 216 |
| 217 void WebContentsViewGuest::TakeFocus(bool reverse) { | 217 void WebContentsViewGuest::TakeFocus(bool reverse) { |
| 218 } | 218 } |
| 219 | 219 |
| 220 void WebContentsViewGuest::ShowContextMenu(const ContextMenuParams& params) { | 220 void WebContentsViewGuest::ShowContextMenu(RenderFrameHost* render_frame_host, |
| 221 const ContextMenuParams& params) { |
| 221 #if defined(USE_AURA) || defined(OS_WIN) | 222 #if defined(USE_AURA) || defined(OS_WIN) |
| 222 // Context menu uses ScreenPositionClient::ConvertPointToScreen() in aura and | 223 // Context menu uses ScreenPositionClient::ConvertPointToScreen() in aura and |
| 223 // windows to calculate popup position. Guest's native view | 224 // windows to calculate popup position. Guest's native view |
| 224 // (platform_view_->GetNativeView()) is part of the embedder's view hierarchy, | 225 // (platform_view_->GetNativeView()) is part of the embedder's view hierarchy, |
| 225 // but is placed at (0, 0) w.r.t. the embedder's position. Therefore, |offset| | 226 // but is placed at (0, 0) w.r.t. the embedder's position. Therefore, |offset| |
| 226 // is added to |params|. | 227 // is added to |params|. |
| 227 gfx::Rect embedder_bounds; | 228 gfx::Rect embedder_bounds; |
| 228 guest_->embedder_web_contents()->GetView()->GetContainerBounds( | 229 guest_->embedder_web_contents()->GetView()->GetContainerBounds( |
| 229 &embedder_bounds); | 230 &embedder_bounds); |
| 230 gfx::Rect guest_bounds; | 231 gfx::Rect guest_bounds; |
| 231 GetContainerBounds(&guest_bounds); | 232 GetContainerBounds(&guest_bounds); |
| 232 | 233 |
| 233 gfx::Vector2d offset = guest_bounds.origin() - embedder_bounds.origin(); | 234 gfx::Vector2d offset = guest_bounds.origin() - embedder_bounds.origin(); |
| 234 ContextMenuParams params_in_embedder = params; | 235 ContextMenuParams params_in_embedder = params; |
| 235 params_in_embedder.x += offset.x(); | 236 params_in_embedder.x += offset.x(); |
| 236 params_in_embedder.y += offset.y(); | 237 params_in_embedder.y += offset.y(); |
| 237 platform_view_delegate_view_->ShowContextMenu(params_in_embedder); | 238 platform_view_delegate_view_->ShowContextMenu( |
| 239 render_frame_host, params_in_embedder); |
| 238 #else | 240 #else |
| 239 platform_view_delegate_view_->ShowContextMenu(params); | 241 platform_view_delegate_view_->ShowContextMenu(render_frame_host, params); |
| 240 #endif // defined(USE_AURA) || defined(OS_WIN) | 242 #endif // defined(USE_AURA) || defined(OS_WIN) |
| 241 } | 243 } |
| 242 | 244 |
| 243 void WebContentsViewGuest::ShowPopupMenu(const gfx::Rect& bounds, | 245 void WebContentsViewGuest::ShowPopupMenu(const gfx::Rect& bounds, |
| 244 int item_height, | 246 int item_height, |
| 245 double item_font_size, | 247 double item_font_size, |
| 246 int selected_item, | 248 int selected_item, |
| 247 const std::vector<MenuItem>& items, | 249 const std::vector<MenuItem>& items, |
| 248 bool right_aligned, | 250 bool right_aligned, |
| 249 bool allow_multiple_selection) { | 251 bool allow_multiple_selection) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 265 CHECK(embedder_render_view_host); | 267 CHECK(embedder_render_view_host); |
| 266 RenderViewHostDelegateView* view = | 268 RenderViewHostDelegateView* view = |
| 267 embedder_render_view_host->GetDelegate()->GetDelegateView(); | 269 embedder_render_view_host->GetDelegate()->GetDelegateView(); |
| 268 if (view) | 270 if (view) |
| 269 view->StartDragging(drop_data, ops, image, image_offset, event_info); | 271 view->StartDragging(drop_data, ops, image, image_offset, event_info); |
| 270 else | 272 else |
| 271 embedder_web_contents->SystemDragEnded(); | 273 embedder_web_contents->SystemDragEnded(); |
| 272 } | 274 } |
| 273 | 275 |
| 274 } // namespace content | 276 } // namespace content |
| OLD | NEW |