webserver: Replace scoped_ptr with std::unique_ptr in request handlers

Now that we can use std::unique_ptr with base::Callback, remove the
remaining scoped_ptr usage in webserver's request handlers.

BUG=None
TEST=`FEATURES=test emerge-link webserver privetd leaderd`
CQ-DEPEND=CL:267720,CL:*214525

Change-Id: I7a05ce818bccfb2408eb624760a14a2c71da2c6e
Reviewed-on: https://chromium-review.googlesource.com/267284
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/leaderd/webserver_client.cc b/leaderd/webserver_client.cc
index 76e31ab..fc49248 100644
--- a/leaderd/webserver_client.cc
+++ b/leaderd/webserver_client.cc
@@ -76,7 +76,7 @@
 
 namespace {
 
-std::unique_ptr<Value> GetBody(scoped_ptr<Request> request) {
+std::unique_ptr<Value> GetBody(std::unique_ptr<Request> request) {
   std::string data(request->GetData().begin(), request->GetData().end());
   VLOG(3) << "Input: " << data;
 
@@ -95,9 +95,9 @@
 }  // namespace
 
 void WebServerClient::RequestHandler(QueryType query_type,
-                                     scoped_ptr<Request> request,
-                                     scoped_ptr<Response> response) {
-  std::unique_ptr<Value> value{GetBody(request.Pass())};
+                                     std::unique_ptr<Request> request,
+                                     std::unique_ptr<Response> response) {
+  std::unique_ptr<Value> value{GetBody(std::move(request))};
   const base::DictionaryValue* dictionary = nullptr;
   if (value) value->GetAsDictionary(&dictionary);
   std::unique_ptr<base::DictionaryValue> output;
diff --git a/leaderd/webserver_client.h b/leaderd/webserver_client.h
index bddde35..ac0c9af 100644
--- a/leaderd/webserver_client.h
+++ b/leaderd/webserver_client.h
@@ -7,7 +7,6 @@
 
 #include <string>
 
-#include <base/callback.h>
 #include <base/values.h>
 #include <chromeos/dbus/async_event_sequencer.h>
 #include <dbus/bus.h>
@@ -66,12 +65,13 @@
   friend class WebServerClientTest;
   enum class QueryType { DISCOVER, CHALLENGE, ANNOUNCE };
   void RequestHandler(QueryType query_type,
-                      scoped_ptr<libwebserv::Request> request,
-                      scoped_ptr<libwebserv::Response> response);
-  void ChallengeRequestHandler(scoped_ptr<libwebserv::Request> request,
-                               scoped_ptr<libwebserv::Response> response);
-  void AnnouncementRequestHandler(scoped_ptr<libwebserv::Request> request,
-                                  scoped_ptr<libwebserv::Response> response);
+                      std::unique_ptr<libwebserv::Request> request,
+                      std::unique_ptr<libwebserv::Response> response);
+  void ChallengeRequestHandler(std::unique_ptr<libwebserv::Request> request,
+                               std::unique_ptr<libwebserv::Response> response);
+  void AnnouncementRequestHandler(
+      std::unique_ptr<libwebserv::Request> request,
+      std::unique_ptr<libwebserv::Response> response);
   std::unique_ptr<base::DictionaryValue> ProcessDiscover(
       const base::DictionaryValue* input);
   std::unique_ptr<base::DictionaryValue> ProcessChallenge(
diff --git a/privetd/main.cc b/privetd/main.cc
index 6e3222a..660f57e 100644
--- a/privetd/main.cc
+++ b/privetd/main.cc
@@ -172,8 +172,8 @@
   void OnDeviceInfoChanged() override { OnChanged(); };
 
  private:
-  void PrivetRequestHandler(scoped_ptr<Request> request,
-                            scoped_ptr<Response> response) {
+  void PrivetRequestHandler(std::unique_ptr<Request> request,
+                            std::unique_ptr<Response> response) {
     std::string auth_header = GetFirstHeader(
         *request, chromeos::http::request_header::kAuthorization);
     if (auth_header.empty() && disable_security_)
@@ -204,15 +204,15 @@
                    base::Passed(&response)));
   }
 
-  void PrivetResponseHandler(scoped_ptr<Response> response,
+  void PrivetResponseHandler(std::unique_ptr<Response> response,
                              int status,
                              const base::DictionaryValue& output) {
     VLOG(3) << "status: " << status << ", Output: " << output;
     response->ReplyWithJson(status, &output);
   }
 
-  void HelloWorldHandler(scoped_ptr<Request> request,
-                         scoped_ptr<Response> response) {
+  void HelloWorldHandler(std::unique_ptr<Request> request,
+                         std::unique_ptr<Response> response) {
     response->ReplyWithText(chromeos::http::status_code::Ok, "Hello, world!",
                             chromeos::mime::text::kPlain);
   }
diff --git a/privetd/wifi_bootstrap_manager.cc b/privetd/wifi_bootstrap_manager.cc
index 3fc4d33..d0be5c0 100644
--- a/privetd/wifi_bootstrap_manager.cc
+++ b/privetd/wifi_bootstrap_manager.cc
@@ -4,7 +4,6 @@
 
 #include "privetd/wifi_bootstrap_manager.h"
 
-#include <base/bind.h>
 #include <base/logging.h>
 #include <base/memory/weak_ptr.h>
 #include <base/message_loop/message_loop.h>
diff --git a/webserver/libwebserv/protocol_handler.cc b/webserver/libwebserv/protocol_handler.cc
index fe0c9b0..6b0ec77 100644
--- a/webserver/libwebserv/protocol_handler.cc
+++ b/webserver/libwebserv/protocol_handler.cc
@@ -189,8 +189,8 @@
     return false;
   }
   handler_iter->second.handler->HandleRequest(
-      scoped_ptr<Request>(request.release()),
-      scoped_ptr<Response>(new Response{this, request_id}));
+      std::move(request),
+      std::unique_ptr<Response>{new Response{this, request_id}});
   return true;
 }
 
diff --git a/webserver/libwebserv/request.h b/webserver/libwebserv/request.h
index f75622b..894546b 100644
--- a/webserver/libwebserv/request.h
+++ b/webserver/libwebserv/request.h
@@ -14,7 +14,6 @@
 #include <base/callback_forward.h>
 #include <base/macros.h>
 #include <base/memory/ref_counted.h>
-#include <base/memory/scoped_ptr.h>
 #include <chromeos/errors/error.h>
 #include <libwebserv/export.h>
 
diff --git a/webserver/libwebserv/request_handler_callback.cc b/webserver/libwebserv/request_handler_callback.cc
index f5be1fb..4989a8e 100644
--- a/webserver/libwebserv/request_handler_callback.cc
+++ b/webserver/libwebserv/request_handler_callback.cc
@@ -10,9 +10,9 @@
     const base::Callback<HandlerSignature>& callback) : callback_(callback) {
 }
 
-void RequestHandlerCallback::HandleRequest(scoped_ptr<Request> request,
-                                           scoped_ptr<Response> response) {
-  callback_.Run(request.Pass(), response.Pass());
+void RequestHandlerCallback::HandleRequest(std::unique_ptr<Request> request,
+                                           std::unique_ptr<Response> response) {
+  callback_.Run(std::move(request), std::move(response));
 }
 
 }  // namespace libwebserv
diff --git a/webserver/libwebserv/request_handler_callback.h b/webserver/libwebserv/request_handler_callback.h
index 1be1817..dd35a6e 100644
--- a/webserver/libwebserv/request_handler_callback.h
+++ b/webserver/libwebserv/request_handler_callback.h
@@ -21,8 +21,8 @@
   explicit RequestHandlerCallback(
       const base::Callback<HandlerSignature>& callback);
 
-  void HandleRequest(scoped_ptr<Request> request,
-                     scoped_ptr<Response> response) override;
+  void HandleRequest(std::unique_ptr<Request> request,
+                     std::unique_ptr<Response> response) override;
 
  private:
   base::Callback<HandlerSignature> callback_;
diff --git a/webserver/libwebserv/request_handler_interface.h b/webserver/libwebserv/request_handler_interface.h
index 0b12126..878c975 100644
--- a/webserver/libwebserv/request_handler_interface.h
+++ b/webserver/libwebserv/request_handler_interface.h
@@ -5,7 +5,8 @@
 #ifndef WEBSERVER_LIBWEBSERV_REQUEST_HANDLER_INTERFACE_H_
 #define WEBSERVER_LIBWEBSERV_REQUEST_HANDLER_INTERFACE_H_
 
-#include <base/memory/scoped_ptr.h>
+#include <memory>
+
 #include <libwebserv/request.h>
 #include <libwebserv/response.h>
 
@@ -17,10 +18,11 @@
 // send response.
 class RequestHandlerInterface {
  public:
-  using HandlerSignature = void(scoped_ptr<Request>, scoped_ptr<Response>);
+  using HandlerSignature =
+      void(std::unique_ptr<Request>, std::unique_ptr<Response>);
 
-  virtual void HandleRequest(scoped_ptr<Request> request,
-                             scoped_ptr<Response> response) = 0;
+  virtual void HandleRequest(std::unique_ptr<Request> request,
+                             std::unique_ptr<Response> response) = 0;
 };
 
 }  // namespace libwebserv