Add IsClosing() checks to mojo input handling.

Sending input to a closing or already closed render_widget can cause
crashes.

BUG=791982

Change-Id: I7b3addc7740d161027b1cd9d26659a62249ecb44
Reviewed-on: https://chromium-review.googlesource.com/815537
Reviewed-by: Alex Moshchuk <[email protected]>
Commit-Queue: Dave Tapuska <[email protected]>
Cr-Commit-Position: refs/heads/master@{#522636}
diff --git a/content/renderer/input/widget_input_handler_impl.cc b/content/renderer/input/widget_input_handler_impl.cc
index c32c751..c06b9b0a 100644
--- a/content/renderer/input/widget_input_handler_impl.cc
+++ b/content/renderer/input/widget_input_handler_impl.cc
@@ -43,9 +43,11 @@
 void RunClosureIfNotSwappedOut(base::WeakPtr<RenderWidget> render_widget,
                                base::OnceClosure closure) {
   // Input messages must not be processed if the RenderWidget is in swapped out
-  // state.
-  if (!render_widget || render_widget->is_swapped_out())
+  // or closing state.
+  if (!render_widget || render_widget->is_swapped_out() ||
+      render_widget->IsClosing()) {
     return;
+  }
   std::move(closure).Run();
 }