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

Unified Diff: content/browser/renderer_host/render_widget_host_input_event_router.cc

Issue 1545683002: Use WeakPtr to RenderWidgetHostViewBase in InputEventRouter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address suggestions. Created 5 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/renderer_host/render_widget_host_input_event_router.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/render_widget_host_input_event_router.cc
diff --git a/content/browser/renderer_host/render_widget_host_input_event_router.cc b/content/browser/renderer_host/render_widget_host_input_event_router.cc
index 449b2f6850247e2b6f54da5d8ea38b04b60b73c7..5c0971116ac5eac6aa3fd52ad72cba640e31cc08 100644
--- a/content/browser/renderer_host/render_widget_host_input_event_router.cc
+++ b/content/browser/renderer_host/render_widget_host_input_event_router.cc
@@ -41,7 +41,7 @@ RenderWidgetHostViewBase* RenderWidgetHostInputEventRouter::FindEventTarget(
// parent frame has not sent a new compositor frame since that happened.
if (iter == owner_map_.end())
return root_view;
- return iter->second;
+ return iter->second.get();
}
void RenderWidgetHostInputEventRouter::RouteMouseEvent(
@@ -50,6 +50,9 @@ void RenderWidgetHostInputEventRouter::RouteMouseEvent(
gfx::Point transformed_point;
RenderWidgetHostViewBase* target = FindEventTarget(
root_view, gfx::Point(event->x, event->y), &transformed_point);
+ if (!target)
+ return;
+
event->x = transformed_point.x();
event->y = transformed_point.y();
@@ -62,6 +65,9 @@ void RenderWidgetHostInputEventRouter::RouteMouseWheelEvent(
gfx::Point transformed_point;
RenderWidgetHostViewBase* target = FindEventTarget(
root_view, gfx::Point(event->x, event->y), &transformed_point);
+ if (!target)
+ return;
+
event->x = transformed_point.x();
event->y = transformed_point.y();
@@ -85,18 +91,19 @@ void RenderWidgetHostInputEventRouter::RouteTouchEvent(
FindEventTarget(root_view, original_point, &transformed_point);
}
++active_touches_;
- current_touch_target_->ProcessTouchEvent(*event, latency);
+ if (current_touch_target_)
+ current_touch_target_->ProcessTouchEvent(*event, latency);
break;
}
case blink::WebInputEvent::TouchMove:
- DCHECK(current_touch_target_);
- current_touch_target_->ProcessTouchEvent(*event, latency);
+ if (current_touch_target_)
+ current_touch_target_->ProcessTouchEvent(*event, latency);
break;
case blink::WebInputEvent::TouchEnd:
case blink::WebInputEvent::TouchCancel:
DCHECK(active_touches_);
- DCHECK(current_touch_target_);
- current_touch_target_->ProcessTouchEvent(*event, latency);
+ if (current_touch_target_)
+ current_touch_target_->ProcessTouchEvent(*event, latency);
--active_touches_;
if (!active_touches_)
current_touch_target_ = nullptr;
@@ -110,7 +117,7 @@ void RenderWidgetHostInputEventRouter::AddSurfaceIdNamespaceOwner(
uint32_t id,
RenderWidgetHostViewBase* owner) {
DCHECK(owner_map_.find(id) == owner_map_.end());
- owner_map_.insert(std::make_pair(id, owner));
+ owner_map_.insert(std::make_pair(id, owner->GetWeakPtr()));
}
void RenderWidgetHostInputEventRouter::RemoveSurfaceIdNamespaceOwner(
« no previous file with comments | « content/browser/renderer_host/render_widget_host_input_event_router.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698