Store OverscrollControllerDelegate as a WeakPtr.

This is a speculative fix for https://crbug.com/1183933. The
OverscrollControllerDelegate is owned by the WebContentsViewAura but an
unowned pointer is set on the given view's OverscrollController. It's
unclear whether the WebContentsViewAura is guaranteed to outlive or live
as long as the RenderWidgetHostViewAura. By using a weak pointer we
ensure the delegate is no longer called if it is destructed.

Bug: 1183933
Change-Id: I41dc6e2e4ba26dd5be958fff5e7da3a5fc66c513
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2791883
Reviewed-by: Ken Buchanan <[email protected]>
Reviewed-by: Bo <[email protected]>
Commit-Queue: Robert Flack <[email protected]>
Cr-Commit-Position: refs/heads/master@{#867641}
diff --git a/content/browser/renderer_host/overscroll_controller_unittest.cc b/content/browser/renderer_host/overscroll_controller_unittest.cc
index 986a654..e9e0a5b 100644
--- a/content/browser/renderer_host/overscroll_controller_unittest.cc
+++ b/content/browser/renderer_host/overscroll_controller_unittest.cc
@@ -30,7 +30,7 @@
         features::kTouchpadOverscrollHistoryNavigation);
     delegate_ = std::make_unique<TestOverscrollDelegate>(gfx::Size(400, 300));
     controller_ = std::make_unique<OverscrollController>();
-    controller_->set_delegate(delegate_.get());
+    controller_->set_delegate(delegate_->GetWeakPtr());
   }
 
   void TearDown() override {