Chromium Code Reviews| Index: content/browser/web_contents/web_contents_view_aura.cc |
| diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc |
| index d3c5d7ae8119d09be21a72d2b5a7f593e6d90b05..ab82fd13789f6f66923ec8f255b452715e35123d 100644 |
| --- a/content/browser/web_contents/web_contents_view_aura.cc |
| +++ b/content/browser/web_contents/web_contents_view_aura.cc |
| @@ -19,6 +19,7 @@ |
| #include "content/browser/renderer_host/render_view_host_impl.h" |
| #include "content/browser/renderer_host/render_widget_host_impl.h" |
| #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
| +#include "content/browser/renderer_host/web_input_event_aura.h" |
| #include "content/browser/web_contents/aura/gesture_nav_simple.h" |
| #include "content/browser/web_contents/aura/image_window_delegate.h" |
| #include "content/browser/web_contents/aura/overscroll_navigation_overlay.h" |
| @@ -811,7 +812,7 @@ void WebContentsViewAura::InstallOverscrollControllerDelegate( |
| void WebContentsViewAura::PrepareOverscrollWindow() { |
| // If there is an existing |overscroll_window_| which is in the middle of an |
| // animation, then destroying the window here causes the animation to be |
| - // completed immidiately, which triggers |OnImplicitAnimationsCompleted()| |
| + // completed immediately, which triggers |OnImplicitAnimationsCompleted()| |
| // callback, and that tries to reset |overscroll_window_| again, causing a |
| // double-free. So use a temporary variable here. |
| if (overscroll_window_) { |
| @@ -989,6 +990,22 @@ void WebContentsViewAura::OverscrollUpdateForWebContentsDelegate(int delta_y) { |
| web_contents_->GetDelegate()->OverscrollUpdate(delta_y); |
| } |
| +void WebContentsViewAura::ProcessLinkDisambiguationGesture( |
|
jam
2014/07/30 20:29:03
this should be behind the ifdef as well?
luken
2014/07/31 01:41:47
Done.
|
| + ui::GestureEvent* event) { |
| + blink::WebGestureEvent web_gesture = content::MakeWebGestureEvent(event); |
| + // If we fail to make a WebGestureEvent that is a Tap from the provided event, |
| + // don't forward it to Blink. |
| + if (web_gesture.type < blink::WebInputEvent::Type::GestureTap || |
| + web_gesture.type > blink::WebInputEvent::Type::GestureTapCancel) |
| + return; |
| + |
| + RenderWidgetHostViewAura* rwhva = |
| + ToRenderWidgetHostViewAura(web_contents_->GetRenderWidgetHostView()); |
| + RenderWidgetHostImpl* host = |
| + RenderWidgetHostImpl::From(rwhva->GetRenderWidgetHost()); |
| + host->ForwardGestureEvent(web_gesture); |
| +} |
| + |
| //////////////////////////////////////////////////////////////////////////////// |
| // WebContentsViewAura, WebContentsView implementation: |
| @@ -1270,6 +1287,21 @@ void WebContentsViewAura::TakeFocus(bool reverse) { |
| } |
| } |
| +#if defined(OS_WIN) |
| +void WebContentsViewAura::ShowDisambiguationPopup( |
| + const gfx::Rect& target_rect, |
| + const SkBitmap& zoomed_bitmap) { |
| + if (delegate_) { |
| + delegate_->ShowLinkDisambiguationPopup( |
| + target_rect, |
| + zoomed_bitmap, |
| + window_.get(), |
| + base::Bind(&WebContentsViewAura::ProcessLinkDisambiguationGesture, |
| + base::Unretained(this))); |
| + } |
| +} |
| +#endif |
| + |
| //////////////////////////////////////////////////////////////////////////////// |
| // WebContentsViewAura, OverscrollControllerDelegate implementation: |