Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(343)

Side by Side Diff: content/browser/renderer_host/render_widget_host_input_event_router.cc

Issue 2136413002: Update Surface ID Terminology (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed webkit_unit_tests Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/renderer_host/render_widget_host_input_event_router.h" 5 #include "content/browser/renderer_host/render_widget_host_input_event_router.h"
6 6
7 #include "base/debug/dump_without_crashing.h" 7 #include "base/debug/dump_without_crashing.h"
8 #include "cc/quads/surface_draw_quad.h" 8 #include "cc/quads/surface_draw_quad.h"
9 #include "cc/surfaces/surface_id_allocator.h" 9 #include "cc/surfaces/surface_id_allocator.h"
10 #include "cc/surfaces/surface_manager.h" 10 #include "cc/surfaces/surface_manager.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 } 115 }
116 116
117 // The hittest delegate is used to reject hittesting quads based on extra 117 // The hittest delegate is used to reject hittesting quads based on extra
118 // hittesting data send by the renderer. 118 // hittesting data send by the renderer.
119 HittestDelegate delegate(hittest_data_); 119 HittestDelegate delegate(hittest_data_);
120 120
121 // The conversion of point to transform_point is done over the course of the 121 // The conversion of point to transform_point is done over the course of the
122 // hit testing, and reflect transformations that would normally be applied in 122 // hit testing, and reflect transformations that would normally be applied in
123 // the renderer process if the event was being routed between frames within a 123 // the renderer process if the event was being routed between frames within a
124 // single process with only one RenderWidgetHost. 124 // single process with only one RenderWidgetHost.
125 uint32_t surface_id_namespace = 125 uint32_t surface_client_id =
126 root_view->SurfaceIdNamespaceAtPoint(&delegate, point, transformed_point); 126 root_view->SurfaceClientIdAtPoint(&delegate, point, transformed_point);
127 const SurfaceIdNamespaceOwnerMap::iterator iter = 127 const SurfaceClientIdOwnerMap::iterator iter =
128 owner_map_.find(surface_id_namespace); 128 owner_map_.find(surface_client_id);
129 // If the point hit a Surface whose namspace is no longer in the map, then 129 // If the point hit a Surface whose namspace is no longer in the map, then
130 // it likely means the RenderWidgetHostView has been destroyed but its 130 // it likely means the RenderWidgetHostView has been destroyed but its
131 // parent frame has not sent a new compositor frame since that happened. 131 // parent frame has not sent a new compositor frame since that happened.
132 if (iter == owner_map_.end()) 132 if (iter == owner_map_.end())
133 return root_view; 133 return root_view;
134 134
135 return iter->second; 135 return iter->second;
136 } 136 }
137 137
138 void RenderWidgetHostInputEventRouter::RouteMouseEvent( 138 void RenderWidgetHostInputEventRouter::RouteMouseEvent(
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 338
339 void RenderWidgetHostInputEventRouter::CancelScrollBubbling( 339 void RenderWidgetHostInputEventRouter::CancelScrollBubbling(
340 RenderWidgetHostViewBase* target_view) { 340 RenderWidgetHostViewBase* target_view) {
341 DCHECK(target_view); 341 DCHECK(target_view);
342 if (target_view == first_bubbling_scroll_target_.target) { 342 if (target_view == first_bubbling_scroll_target_.target) {
343 first_bubbling_scroll_target_.target = nullptr; 343 first_bubbling_scroll_target_.target = nullptr;
344 bubbling_gesture_scroll_target_.target = nullptr; 344 bubbling_gesture_scroll_target_.target = nullptr;
345 } 345 }
346 } 346 }
347 347
348 void RenderWidgetHostInputEventRouter::AddSurfaceIdNamespaceOwner( 348 void RenderWidgetHostInputEventRouter::AddSurfaceClientIdOwner(
349 uint32_t id, 349 uint32_t id,
350 RenderWidgetHostViewBase* owner) { 350 RenderWidgetHostViewBase* owner) {
351 DCHECK(owner_map_.find(id) == owner_map_.end()); 351 DCHECK(owner_map_.find(id) == owner_map_.end());
352 // We want to be notified if the owner is destroyed so we can remove it from 352 // We want to be notified if the owner is destroyed so we can remove it from
353 // our map. 353 // our map.
354 owner->AddObserver(this); 354 owner->AddObserver(this);
355 owner_map_.insert(std::make_pair(id, owner)); 355 owner_map_.insert(std::make_pair(id, owner));
356 } 356 }
357 357
358 void RenderWidgetHostInputEventRouter::RemoveSurfaceIdNamespaceOwner( 358 void RenderWidgetHostInputEventRouter::RemoveSurfaceClientIdOwner(uint32_t id) {
359 uint32_t id) {
360 auto it_to_remove = owner_map_.find(id); 359 auto it_to_remove = owner_map_.find(id);
361 if (it_to_remove != owner_map_.end()) { 360 if (it_to_remove != owner_map_.end()) {
362 it_to_remove->second->RemoveObserver(this); 361 it_to_remove->second->RemoveObserver(this);
363 owner_map_.erase(it_to_remove); 362 owner_map_.erase(it_to_remove);
364 } 363 }
365 364
366 for (auto it = hittest_data_.begin(); it != hittest_data_.end();) { 365 for (auto it = hittest_data_.begin(); it != hittest_data_.end();) {
367 if (it->first.id_namespace() == id) 366 if (it->first.client_id() == id)
368 it = hittest_data_.erase(it); 367 it = hittest_data_.erase(it);
369 else 368 else
370 ++it; 369 ++it;
371 } 370 }
372 } 371 }
373 372
374 void RenderWidgetHostInputEventRouter::OnHittestData( 373 void RenderWidgetHostInputEventRouter::OnHittestData(
375 const FrameHostMsg_HittestData_Params& params) { 374 const FrameHostMsg_HittestData_Params& params) {
376 if (owner_map_.find(params.surface_id.id_namespace()) == owner_map_.end()) { 375 if (owner_map_.find(params.surface_id.client_id()) == owner_map_.end()) {
377 return; 376 return;
378 } 377 }
379 HittestData data; 378 HittestData data;
380 data.ignored_for_hittest = params.ignored_for_hittest; 379 data.ignored_for_hittest = params.ignored_for_hittest;
381 hittest_data_[params.surface_id] = data; 380 hittest_data_[params.surface_id] = data;
382 } 381 }
383 382
384 void RenderWidgetHostInputEventRouter::RouteTouchscreenGestureEvent( 383 void RenderWidgetHostInputEventRouter::RouteTouchscreenGestureEvent(
385 RenderWidgetHostViewBase* root_view, 384 RenderWidgetHostViewBase* root_view,
386 blink::WebGestureEvent* event, 385 blink::WebGestureEvent* event,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 if (!touchpad_gesture_target_.target) 438 if (!touchpad_gesture_target_.target)
440 return; 439 return;
441 440
442 // TODO(mohsen): Add tests to check event location. 441 // TODO(mohsen): Add tests to check event location.
443 event->x += touchpad_gesture_target_.delta.x(); 442 event->x += touchpad_gesture_target_.delta.x();
444 event->y += touchpad_gesture_target_.delta.y(); 443 event->y += touchpad_gesture_target_.delta.y();
445 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency); 444 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency);
446 } 445 }
447 446
448 } // namespace content 447 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698