Update WebContents::Clone() to return a unique_ptr.

This CL is a refactor with no intended behavior change.

Bug: 832879
Change-Id: I6d54051f50ed4b0c46f821872aafea1ba4b3fd32
Reviewed-on: https://chromium-review.googlesource.com/1040590
Reviewed-by: Avi Drissman <[email protected]>
Commit-Queue: Erik Chen <[email protected]>
Cr-Commit-Position: refs/heads/master@{#555813}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 78cd421..3a9d68d 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -1690,7 +1690,7 @@
   SendPageMessage(new PageMsg_FreezePage(MSG_ROUTING_NONE));
 }
 
-WebContents* WebContentsImpl::Clone() {
+std::unique_ptr<WebContents> WebContentsImpl::Clone() {
   // We use our current SiteInstance since the cloned entry will use it anyway.
   // We pass our own opener so that the cloned page can access it if it was set
   // before.
@@ -1700,10 +1700,11 @@
   RenderFrameHostImpl* opener_rfh = nullptr;
   if (opener)
     opener_rfh = opener->current_frame_host();
-  WebContentsImpl* tc = CreateWithOpener(create_params, opener_rfh);
+  std::unique_ptr<WebContentsImpl> tc =
+      base::WrapUnique(CreateWithOpener(create_params, opener_rfh));
   tc->GetController().CopyStateFrom(controller_, true);
   for (auto& observer : observers_)
-    observer.DidCloneToNewWebContents(this, tc);
+    observer.DidCloneToNewWebContents(this, tc.get());
   return tc;
 }