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

Unified Diff: content/browser/frame_host/render_widget_host_view_child_frame.cc

Issue 1711103002: Implement lifetime observer on RenderWidgetHostViewBase. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Restructure, and make RWHVB derived classes responsible for early notification. Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
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..cd8049ab4f40b5f97fdd0a0fb0a9c6a21bdf044c 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
@@ -203,15 +203,18 @@ void RenderWidgetHostViewChildFrame::RenderProcessGone(
}
void RenderWidgetHostViewChildFrame::Destroy() {
+ // SurfaceIdNames registered with RenderWidgetHostInputEventRouter
kenrb 2016/02/22 17:05:10 nit: s/SurfaceIdNames/SurfaceIdNamespaces
wjmaclean 2016/02/23 13:13:26 Done.
+ // have already been cleared when RenderWidgetHostViewBase notified its
+ // observers of our impending destruction.
if (frame_connector_) {
frame_connector_->set_view(NULL);
frame_connector_ = NULL;
}
- if (host_->delegate() && host_->delegate()->GetInputEventRouter()) {
- host_->delegate()->GetInputEventRouter()->RemoveSurfaceIdNamespaceOwner(
- GetSurfaceIdNamespace());
- }
+ // We notify our observers about shutdown here since we are about to release
+ // host_ and do not want any event calls coming from
+ // RenderWidgetHostInputEventRouter afterwards.
+ NotifyObserversAboutShutdown();
host_->SetView(NULL);
host_ = NULL;
@@ -363,25 +366,16 @@ 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);
}
void RenderWidgetHostViewChildFrame::ProcessMouseWheelEvent(
const blink::WebMouseWheelEvent& event) {
- if (!host_)
- return;
-
if (event.deltaX != 0 || event.deltaY != 0)
host_->ForwardWheelEvent(event);
}

Powered by Google App Engine
This is Rietveld 408576698