libchromeos: Replace scoped_ptr with std::unique_ptr in async http callbacks

Changed callbacks to use std::unique_ptr in async HTTP response callbacks
instead of scoped_ptr, now that we can do this with base::Callback.
This eliminates the need to mix scoped_ptr and std::unique_ptr in the same
translation unit.

Sweep the code in leaderd and buffet to match the signature of the callbacks.

BUG=None
TEST=`FEATURES=test emerge-link libchromeos leaderd buffet`
CQ-DEPEND=CL:*214526

Change-Id: I2f93db3f863b2fb1994058b2b1fff12760edd022
Reviewed-on: https://chromium-review.googlesource.com/267342
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc
index 2b42492..a56a15a 100644
--- a/buffet/device_registration_info.cc
+++ b/buffet/device_registration_info.cc
@@ -583,7 +583,7 @@
       FROM_HERE, base::Bind(cb, base::Owned(value.release())));
 }
 
-using ResponsePtr = scoped_ptr<chromeos::http::Response>;
+using ResponsePtr = std::unique_ptr<chromeos::http::Response>;
 
 void SendRequestWithRetries(
     const std::string& method,
@@ -614,7 +614,7 @@
     int status_code = response->GetStatusCode();
     if (status_code >= chromeos::http::status_code::Continue &&
         status_code < chromeos::http::status_code::BadRequest) {
-      success_callback.Run(request_id, response.Pass());
+      success_callback.Run(request_id, std::move(response));
       return;
     }
 
diff --git a/buffet/device_registration_info.h b/buffet/device_registration_info.h
index 6cf5371..4fa4c47 100644
--- a/buffet/device_registration_info.h
+++ b/buffet/device_registration_info.h
@@ -10,7 +10,6 @@
 #include <string>
 #include <utility>
 
-#include <base/callback.h>
 #include <base/macros.h>
 #include <base/memory/weak_ptr.h>
 #include <base/message_loop/message_loop.h>
diff --git a/leaderd/group.cc b/leaderd/group.cc
index b77eb0b..f7f6642 100644
--- a/leaderd/group.cc
+++ b/leaderd/group.cc
@@ -64,7 +64,7 @@
 }
 
 void IgnoreHttpSuccess(chromeos::http::RequestID request_id,
-                       scoped_ptr<Response> response) {
+                       std::unique_ptr<Response> response) {
 }
 
 void IgnoreHttpFailure(chromeos::http::RequestID request_id,
@@ -338,7 +338,7 @@
 }
 
 void Group::HandleLeaderDiscoverResponse(chromeos::http::RequestID request_id,
-                                         scoped_ptr<Response> response) {
+                                         std::unique_ptr<Response> response) {
   chromeos::ErrorPtr error;
   std::unique_ptr<base::DictionaryValue> json_resp =
       chromeos::http::ParseJsonResponse(response.get(), nullptr, &error);
@@ -376,7 +376,7 @@
 }
 
 void Group::HandleLeaderChallengeResponse(chromeos::http::RequestID request_id,
-                                          scoped_ptr<Response> response) {
+                                          std::unique_ptr<Response> response) {
   chromeos::ErrorPtr error;
   std::unique_ptr<base::DictionaryValue> json_resp =
       chromeos::http::ParseJsonResponse(response.get(), nullptr, &error);
diff --git a/leaderd/group.h b/leaderd/group.h
index 1565d73..dc14888 100644
--- a/leaderd/group.h
+++ b/leaderd/group.h
@@ -98,12 +98,12 @@
   void SendLeaderDiscover(const std::string& peer_id);
   void HandleLeaderDiscoverResponse(
       chromeos::http::RequestID request_id,
-      scoped_ptr<chromeos::http::Response> response);
+      std::unique_ptr<chromeos::http::Response> response);
   // These methods let us periodically challenge the leader to confirm fitness.
   void SendLeaderChallenge(const std::string& peer_id);
   void HandleLeaderChallengeResponse(
       chromeos::http::RequestID request_id,
-      scoped_ptr<chromeos::http::Response> response);
+      std::unique_ptr<chromeos::http::Response> response);
   void HandleLeaderChallengeFailure(chromeos::http::RequestID request_id,
                                     const chromeos::Error*);
   // These methods let us announce our leadership.  We ignore results.
diff --git a/libchromeos/chromeos/http/http_connection_fake.cc b/libchromeos/chromeos/http/http_connection_fake.cc
index a70dd5c..3aed590 100644
--- a/libchromeos/chromeos/http/http_connection_fake.cc
+++ b/libchromeos/chromeos/http/http_connection_fake.cc
@@ -74,8 +74,8 @@
   if (!FinishRequest(&error)) {
     error_callback.Run(1, error.get());
   } else {
-    scoped_ptr<Response> response{new Response{shared_from_this()}};
-    success_callback.Run(1, response.Pass());
+    std::unique_ptr<Response> response{new Response{shared_from_this()}};
+    success_callback.Run(1, std::move(response));
   }
 }
 
diff --git a/libchromeos/chromeos/http/http_request_unittest.cc b/libchromeos/chromeos/http/http_request_unittest.cc
index c77d2d9..09867ee 100644
--- a/libchromeos/chromeos/http/http_request_unittest.cc
+++ b/libchromeos/chromeos/http/http_request_unittest.cc
@@ -157,7 +157,7 @@
   };
 
   auto success_callback =
-      [this, &resp_data](RequestID request_id, scoped_ptr<Response> resp) {
+      [this, &resp_data](RequestID request_id, std::unique_ptr<Response> resp) {
     EXPECT_EQ(23, request_id);
     EXPECT_CALL(*connection_, GetResponseStatusCode())
         .WillOnce(Return(status_code::Partial));
@@ -183,8 +183,8 @@
 
     EXPECT_CALL(*connection_, MockExtractDataStream(_))
       .WillOnce(Return(mock_stream.release()));
-    scoped_ptr<Response> resp{new Response{connection_}};
-    success_callback.Run(23, resp.Pass());
+    std::unique_ptr<Response> resp{new Response{connection_}};
+    success_callback.Run(23, std::move(resp));
   };
 
   EXPECT_CALL(
diff --git a/libchromeos/chromeos/http/http_transport.h b/libchromeos/chromeos/http/http_transport.h
index 0329a96..f3f5e47 100644
--- a/libchromeos/chromeos/http/http_transport.h
+++ b/libchromeos/chromeos/http/http_transport.h
@@ -13,7 +13,6 @@
 #include <base/callback_forward.h>
 #include <base/location.h>
 #include <base/macros.h>
-#include <base/memory/scoped_ptr.h>
 #include <base/time/time.h>
 #include <chromeos/chromeos_export.h>
 #include <chromeos/errors/error.h>
@@ -30,7 +29,8 @@
 using RequestID = int;
 
 using HeaderList = std::vector<std::pair<std::string, std::string>>;
-using SuccessCallback = base::Callback<void(RequestID, scoped_ptr<Response>)>;
+using SuccessCallback =
+    base::Callback<void(RequestID, std::unique_ptr<Response>)>;
 using ErrorCallback = base::Callback<void(RequestID, const chromeos::Error*)>;
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/libchromeos/chromeos/http/http_transport_curl.cc b/libchromeos/chromeos/http/http_transport_curl.cc
index 0ab5e1d..5c3b54c 100644
--- a/libchromeos/chromeos/http/http_transport_curl.cc
+++ b/libchromeos/chromeos/http/http_transport_curl.cc
@@ -462,11 +462,11 @@
                                   p->second->request_id,
                                   base::Owned(error.release())));
     } else {
-      scoped_ptr<Response> response{new Response{request_data->connection}};
+      std::unique_ptr<Response> resp{new Response{request_data->connection}};
       RunCallbackAsync(FROM_HERE,
                        base::Bind(request_data->success_callback,
                                   p->second->request_id,
-                                  base::Passed(&response)));
+                                  base::Passed(&resp)));
     }
   }
   // In case of an error on CURL side, we would have dispatched the error
diff --git a/libchromeos/chromeos/http/http_transport_curl_unittest.cc b/libchromeos/chromeos/http/http_transport_curl_unittest.cc
index b8142e6..df36abf 100644
--- a/libchromeos/chromeos/http/http_transport_curl_unittest.cc
+++ b/libchromeos/chromeos/http/http_transport_curl_unittest.cc
@@ -228,7 +228,7 @@
   // Success/error callback needed to report the result of an async operation.
   int success_call_count = 0;
   auto success_callback = [&success_call_count, &run_loop](
-      RequestID request_id, scoped_ptr<http::Response> resp) {
+      RequestID request_id, std::unique_ptr<http::Response> resp) {
     base::MessageLoop::current()->PostTask(FROM_HERE, run_loop.QuitClosure());
     success_call_count++;
   };
diff --git a/libchromeos/chromeos/http/http_utils_unittest.cc b/libchromeos/chromeos/http/http_utils_unittest.cc
index fa4bb55..c006b10 100644
--- a/libchromeos/chromeos/http/http_utils_unittest.cc
+++ b/libchromeos/chromeos/http/http_utils_unittest.cc
@@ -68,7 +68,7 @@
   // Test binary data round-tripping.
   std::vector<uint8_t> custom_data{0xFF, 0x00, 0x80, 0x40, 0xC0, 0x7F};
   auto success_callback =
-      [&custom_data](RequestID id, scoped_ptr<http::Response> response) {
+      [&custom_data](RequestID id, std::unique_ptr<http::Response> response) {
     EXPECT_TRUE(response->IsSuccessful());
     EXPECT_EQ(chromeos::mime::application::kOctet_stream,
               response->GetContentType());
@@ -157,7 +157,7 @@
   std::shared_ptr<fake::Transport> transport(new fake::Transport);
   // Test failed response (URL not found).
   auto success_callback =
-      [](RequestID request_id, scoped_ptr<http::Response> response) {
+      [](RequestID request_id, std::unique_ptr<http::Response> response) {
     EXPECT_FALSE(response->IsSuccessful());
     EXPECT_EQ(status_code::NotFound, response->GetStatusCode());
   };
@@ -463,7 +463,7 @@
   Error::AddTo(&error, FROM_HERE, "test_domain", "test_code", "Test message");
   transport->SetCreateConnectionError(std::move(error));
   auto success_callback =
-      [](RequestID request_id, scoped_ptr<http::Response> response) {
+      [](RequestID request_id, std::unique_ptr<http::Response> response) {
     FAIL() << "This callback shouldn't have been called";
   };
   auto error_callback = [](RequestID request_id, const Error* error) {