| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/frame_host/cross_process_frame_connector.h" | 5 #include "content/browser/frame_host/cross_process_frame_connector.h" |
| 6 | 6 |
| 7 #include "cc/surfaces/surface.h" | 7 #include "cc/surfaces/surface.h" |
| 8 #include "cc/surfaces/surface_hittest.h" | 8 #include "cc/surfaces/surface_hittest.h" |
| 9 #include "cc/surfaces/surface_manager.h" | 9 #include "cc/surfaces/surface_manager.h" |
| 10 #include "content/browser/compositor/surface_utils.h" | 10 #include "content/browser/compositor/surface_utils.h" |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 void CrossProcessFrameConnector::ForwardProcessAckedTouchEvent( | 177 void CrossProcessFrameConnector::ForwardProcessAckedTouchEvent( |
| 178 const TouchEventWithLatencyInfo& touch, | 178 const TouchEventWithLatencyInfo& touch, |
| 179 InputEventAckState ack_result) { | 179 InputEventAckState ack_result) { |
| 180 auto* main_view = GetRootRenderWidgetHostView(); | 180 auto* main_view = GetRootRenderWidgetHostView(); |
| 181 if (main_view) | 181 if (main_view) |
| 182 main_view->ProcessAckedTouchEvent(touch, ack_result); | 182 main_view->ProcessAckedTouchEvent(touch, ack_result); |
| 183 } | 183 } |
| 184 | 184 |
| 185 void CrossProcessFrameConnector::BubbleScrollEvent( | 185 void CrossProcessFrameConnector::BubbleScrollEvent( |
| 186 const blink::WebGestureEvent& event) { | 186 const blink::WebGestureEvent& event) { |
| 187 DCHECK(event.type == blink::WebInputEvent::GestureScrollUpdate || | 187 DCHECK(event.type() == blink::WebInputEvent::GestureScrollUpdate || |
| 188 event.type == blink::WebInputEvent::GestureScrollEnd); | 188 event.type() == blink::WebInputEvent::GestureScrollEnd); |
| 189 auto* parent_view = GetParentRenderWidgetHostView(); | 189 auto* parent_view = GetParentRenderWidgetHostView(); |
| 190 | 190 |
| 191 if (!parent_view) | 191 if (!parent_view) |
| 192 return; | 192 return; |
| 193 | 193 |
| 194 auto* event_router = | 194 auto* event_router = |
| 195 RenderWidgetHostImpl::From(parent_view->GetRenderWidgetHost()) | 195 RenderWidgetHostImpl::From(parent_view->GetRenderWidgetHost()) |
| 196 ->delegate() | 196 ->delegate() |
| 197 ->GetInputEventRouter(); | 197 ->GetInputEventRouter(); |
| 198 | 198 |
| 199 gfx::Vector2d offset_from_parent = child_frame_rect_.OffsetFromOrigin(); | 199 gfx::Vector2d offset_from_parent = child_frame_rect_.OffsetFromOrigin(); |
| 200 blink::WebGestureEvent resent_gesture_event(event); | 200 blink::WebGestureEvent resent_gesture_event(event); |
| 201 // TODO(kenrb, wjmaclean): Do we need to account for transforms here? | 201 // TODO(kenrb, wjmaclean): Do we need to account for transforms here? |
| 202 // See https://crbug.com/626020. | 202 // See https://crbug.com/626020. |
| 203 resent_gesture_event.x += offset_from_parent.x(); | 203 resent_gesture_event.x += offset_from_parent.x(); |
| 204 resent_gesture_event.y += offset_from_parent.y(); | 204 resent_gesture_event.y += offset_from_parent.y(); |
| 205 if (event.type == blink::WebInputEvent::GestureScrollUpdate) { | 205 if (event.type() == blink::WebInputEvent::GestureScrollUpdate) { |
| 206 event_router->BubbleScrollEvent(parent_view, resent_gesture_event); | 206 event_router->BubbleScrollEvent(parent_view, resent_gesture_event); |
| 207 is_scroll_bubbling_ = true; | 207 is_scroll_bubbling_ = true; |
| 208 } else if (event.type == blink::WebInputEvent::GestureScrollEnd && | 208 } else if (event.type() == blink::WebInputEvent::GestureScrollEnd && |
| 209 is_scroll_bubbling_) { | 209 is_scroll_bubbling_) { |
| 210 event_router->BubbleScrollEvent(parent_view, resent_gesture_event); | 210 event_router->BubbleScrollEvent(parent_view, resent_gesture_event); |
| 211 is_scroll_bubbling_ = false; | 211 is_scroll_bubbling_ = false; |
| 212 } | 212 } |
| 213 } | 213 } |
| 214 | 214 |
| 215 bool CrossProcessFrameConnector::HasFocus() { | 215 bool CrossProcessFrameConnector::HasFocus() { |
| 216 RenderWidgetHostViewBase* root_view = GetRootRenderWidgetHostView(); | 216 RenderWidgetHostViewBase* root_view = GetRootRenderWidgetHostView(); |
| 217 if (root_view) | 217 if (root_view) |
| 218 return root_view->HasFocus(); | 218 return root_view->HasFocus(); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 247 frame_proxy_in_parent_renderer_->frame_tree_node()->render_manager(); | 247 frame_proxy_in_parent_renderer_->frame_tree_node()->render_manager(); |
| 248 RenderWidgetHostImpl* parent_widget = | 248 RenderWidgetHostImpl* parent_widget = |
| 249 manager->ForInnerDelegate() | 249 manager->ForInnerDelegate() |
| 250 ? manager->GetOuterRenderWidgetHostForKeyboardInput() | 250 ? manager->GetOuterRenderWidgetHostForKeyboardInput() |
| 251 : frame_proxy_in_parent_renderer_->GetRenderViewHost()->GetWidget(); | 251 : frame_proxy_in_parent_renderer_->GetRenderViewHost()->GetWidget(); |
| 252 | 252 |
| 253 // TODO(wjmaclean): We should remove these forwarding functions, since they | 253 // TODO(wjmaclean): We should remove these forwarding functions, since they |
| 254 // are directly target using RenderWidgetHostInputEventRouter. But neither | 254 // are directly target using RenderWidgetHostInputEventRouter. But neither |
| 255 // pathway is currently handling gesture events, so that needs to be fixed | 255 // pathway is currently handling gesture events, so that needs to be fixed |
| 256 // in a subsequent CL. | 256 // in a subsequent CL. |
| 257 if (blink::WebInputEvent::isKeyboardEventType(event->type)) { | 257 if (blink::WebInputEvent::isKeyboardEventType(event->type())) { |
| 258 if (!parent_widget->GetLastKeyboardEvent()) | 258 if (!parent_widget->GetLastKeyboardEvent()) |
| 259 return; | 259 return; |
| 260 NativeWebKeyboardEvent keyboard_event( | 260 NativeWebKeyboardEvent keyboard_event( |
| 261 *parent_widget->GetLastKeyboardEvent()); | 261 *parent_widget->GetLastKeyboardEvent()); |
| 262 view_->ProcessKeyboardEvent(keyboard_event); | 262 view_->ProcessKeyboardEvent(keyboard_event); |
| 263 return; | 263 return; |
| 264 } | 264 } |
| 265 | 265 |
| 266 if (blink::WebInputEvent::isMouseEventType(event->type)) { | 266 if (blink::WebInputEvent::isMouseEventType(event->type())) { |
| 267 // TODO(wjmaclean): Initialize latency info correctly for OOPIFs. | 267 // TODO(wjmaclean): Initialize latency info correctly for OOPIFs. |
| 268 // https://crbug.com/613628 | 268 // https://crbug.com/613628 |
| 269 ui::LatencyInfo latency_info; | 269 ui::LatencyInfo latency_info; |
| 270 view_->ProcessMouseEvent(*static_cast<const blink::WebMouseEvent*>(event), | 270 view_->ProcessMouseEvent(*static_cast<const blink::WebMouseEvent*>(event), |
| 271 latency_info); | 271 latency_info); |
| 272 return; | 272 return; |
| 273 } | 273 } |
| 274 | 274 |
| 275 if (event->type == blink::WebInputEvent::MouseWheel) { | 275 if (event->type() == blink::WebInputEvent::MouseWheel) { |
| 276 // TODO(wjmaclean): Initialize latency info correctly for OOPIFs. | 276 // TODO(wjmaclean): Initialize latency info correctly for OOPIFs. |
| 277 // https://crbug.com/613628 | 277 // https://crbug.com/613628 |
| 278 ui::LatencyInfo latency_info; | 278 ui::LatencyInfo latency_info; |
| 279 view_->ProcessMouseWheelEvent( | 279 view_->ProcessMouseWheelEvent( |
| 280 *static_cast<const blink::WebMouseWheelEvent*>(event), latency_info); | 280 *static_cast<const blink::WebMouseWheelEvent*>(event), latency_info); |
| 281 return; | 281 return; |
| 282 } | 282 } |
| 283 } | 283 } |
| 284 | 284 |
| 285 void CrossProcessFrameConnector::OnFrameRectChanged( | 285 void CrossProcessFrameConnector::OnFrameRectChanged( |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 369 | 369 |
| 370 if (parent) { | 370 if (parent) { |
| 371 return static_cast<RenderWidgetHostViewBase*>( | 371 return static_cast<RenderWidgetHostViewBase*>( |
| 372 parent->current_frame_host()->GetView()); | 372 parent->current_frame_host()->GetView()); |
| 373 } | 373 } |
| 374 | 374 |
| 375 return nullptr; | 375 return nullptr; |
| 376 } | 376 } |
| 377 | 377 |
| 378 } // namespace content | 378 } // namespace content |
| OLD | NEW |