| Index: content/browser/frame_host/render_widget_host_view_guest.cc
 | 
| diff --git a/content/browser/frame_host/render_widget_host_view_guest.cc b/content/browser/frame_host/render_widget_host_view_guest.cc
 | 
| index 9c4503eaaa55aec7f21153edc4426d8518cc0f9e..3de953021faaaa7269d904228102291d35f01c39 100644
 | 
| --- a/content/browser/frame_host/render_widget_host_view_guest.cc
 | 
| +++ b/content/browser/frame_host/render_widget_host_view_guest.cc
 | 
| @@ -637,8 +637,24 @@ void RenderWidgetHostViewGuest::OnHandleInputEvent(
 | 
|      const gfx::Rect& guest_window_rect,
 | 
|      const blink::WebInputEvent* event) {
 | 
|    if (blink::WebInputEvent::isMouseEventType(event->type)) {
 | 
| -    host_->ForwardMouseEvent(
 | 
| -        *static_cast<const blink::WebMouseEvent*>(event));
 | 
| +    // The mouse events for BrowserPlugin are modified by all
 | 
| +    // the CSS transforms applied on the <object> and embedder. As a result of
 | 
| +    // this, the coordinates passed on to the guest renderer are potentially
 | 
| +    // incorrect to determine the position of the context menu(they are not the
 | 
| +    // actual X, Y of the window). As a hack, we report the last location of a
 | 
| +    // right mouse up to the BrowserPluginGuest to inform it of the next
 | 
| +    // potential location for context menu (BUG=470087).
 | 
| +    // TODO(ekaramad): Find a better and more fundamental solution. Could the
 | 
| +    // ContextMenuParams be based on global X, Y?
 | 
| +    const blink::WebMouseEvent& mouse_event =
 | 
| +        static_cast<const blink::WebMouseEvent&>(*event);
 | 
| +    // A MouseDown on the ButtonRight could suggest a ContextMenu.
 | 
| +    if (guest_ && mouse_event.type == blink::WebInputEvent::MouseDown &&
 | 
| +        mouse_event.button == blink::WebPointerProperties::ButtonRight)
 | 
| +      guest_->SetContextMenuPosition(
 | 
| +          gfx::Point(mouse_event.globalX - GetViewBounds().x(),
 | 
| +                     mouse_event.globalY - GetViewBounds().y()));
 | 
| +    host_->ForwardMouseEvent(mouse_event);
 | 
|      return;
 | 
|    }
 | 
|  
 | 
| 
 |