Chromium Code Reviews| Index: content/browser/frame_host/render_widget_host_view_child_frame.cc |
| diff --git a/content/browser/frame_host/render_widget_host_view_child_frame.cc b/content/browser/frame_host/render_widget_host_view_child_frame.cc |
| index f1399a0e6f60b48959eaeb742024fa394f5a9c95..d826940cf217350bc2dc99da92e1778b3acfccfc 100644 |
| --- a/content/browser/frame_host/render_widget_host_view_child_frame.cc |
| +++ b/content/browser/frame_host/render_widget_host_view_child_frame.cc |
| @@ -43,10 +43,7 @@ RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame( |
| frame_connector_(nullptr), |
| weak_factory_(this) { |
| id_allocator_ = CreateSurfaceIdAllocator(); |
| - if (host_->delegate() && host_->delegate()->GetInputEventRouter()) { |
| - host_->delegate()->GetInputEventRouter()->AddSurfaceIdNamespaceOwner( |
| - GetSurfaceIdNamespace(), this); |
| - } |
| + RegisterSurfaceNamespaceId(); |
|
piman
2016/02/25 21:27:21
Where is the corresponding UnregisteSurfaceNamespa
wjmaclean
2016/02/28 19:45:03
It is called in BrowserPluginGuest.
However, it s
|
| host_->SetView(this); |
| } |
| @@ -240,6 +237,24 @@ void RenderWidgetHostViewChildFrame::UnlockCompositingSurface() { |
| NOTIMPLEMENTED(); |
| } |
| +void RenderWidgetHostViewChildFrame::RegisterSurfaceNamespaceId() { |
| + DCHECK(host_); |
| + if (host_->delegate() && host_->delegate()->GetInputEventRouter()) { |
| + RenderWidgetHostInputEventRouter* router = |
| + host_->delegate()->GetInputEventRouter(); |
| + if (!router->is_registered(GetSurfaceIdNamespace())) |
| + router->AddSurfaceIdNamespaceOwner(GetSurfaceIdNamespace(), this); |
| + } |
| +} |
| + |
| +void RenderWidgetHostViewChildFrame::UnregisterSurfaceNamespaceId() { |
| + DCHECK(host_); |
| + if (host_->delegate() && host_->delegate()->GetInputEventRouter()) { |
| + host_->delegate()->GetInputEventRouter()->RemoveSurfaceIdNamespaceOwner( |
| + GetSurfaceIdNamespace()); |
| + } |
| +} |
| + |
| void RenderWidgetHostViewChildFrame::SurfaceDrawn(uint32_t output_surface_id, |
| cc::SurfaceDrawStatus drawn) { |
| cc::CompositorFrameAck ack; |
| @@ -343,12 +358,14 @@ gfx::Rect RenderWidgetHostViewChildFrame::GetBoundsInRootWindow() { |
| return GetViewBounds(); |
| } |
| -#if defined(USE_AURA) |
| void RenderWidgetHostViewChildFrame::ProcessAckedTouchEvent( |
| const TouchEventWithLatencyInfo& touch, |
| InputEventAckState ack_result) { |
| + if (!frame_connector_) |
| + return; |
| + |
| + frame_connector_->ForwardProcessAckedTouchEvent(touch, ack_result); |
| } |
| -#endif // defined(USE_AURA) |
| bool RenderWidgetHostViewChildFrame::LockMouse() { |
| return false; |
| @@ -363,17 +380,11 @@ uint32_t RenderWidgetHostViewChildFrame::GetSurfaceIdNamespace() { |
| void RenderWidgetHostViewChildFrame::ProcessKeyboardEvent( |
| const NativeWebKeyboardEvent& event) { |
| - if (!host_) |
| - return; |
| - |
| host_->ForwardKeyboardEvent(event); |
| } |
| void RenderWidgetHostViewChildFrame::ProcessMouseEvent( |
| const blink::WebMouseEvent& event) { |
| - if (!host_) |
| - return; |
| - |
| host_->ForwardMouseEvent(event); |
| } |
| @@ -386,6 +397,17 @@ void RenderWidgetHostViewChildFrame::ProcessMouseWheelEvent( |
| host_->ForwardWheelEvent(event); |
| } |
| +void RenderWidgetHostViewChildFrame::ProcessTouchEvent( |
| + const blink::WebTouchEvent& event, |
| + const ui::LatencyInfo& latency) { |
| + if (event.type == blink::WebInputEvent::TouchStart && |
| + frame_connector_ && !frame_connector_->HasFocus()) { |
| + frame_connector_->Focus(); |
| + } |
| + |
| + host_->ForwardTouchEventWithLatencyInfo(event, latency); |
| +} |
| + |
| gfx::Point RenderWidgetHostViewChildFrame::TransformPointToRootCoordSpace( |
| const gfx::Point& point) { |
| if (!frame_connector_) |