libchromeos: Replace scoped_ptr with std::unique_ptr in D-Bus method handlers

Changed callbacks to use std::unique_ptr in D-Bus method handlers 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 the rest of platform2 that used libchromeos's D-Bus framework.

BUG=None
TEST=`FEATURES=test emerge-link libchromeos apmanager attestation buffet chromeos-dbus-bindings`

Change-Id: I50289198ef9ab183d5bc7d0c8cc7a8f53085e5a4
Reviewed-on: https://chromium-review.googlesource.com/267337
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/apmanager/daemon.cc b/apmanager/daemon.cc
index 46882c6..15d457c 100644
--- a/apmanager/daemon.cc
+++ b/apmanager/daemon.cc
@@ -6,7 +6,6 @@
 
 #include <sysexits.h>
 
-#include <base/bind.h>
 #include <base/logging.h>
 #include <base/message_loop/message_loop_proxy.h>
 #include <base/run_loop.h>
diff --git a/apmanager/daemon.h b/apmanager/daemon.h
index 3588da9..cd6af1c 100644
--- a/apmanager/daemon.h
+++ b/apmanager/daemon.h
@@ -5,7 +5,7 @@
 #ifndef APMANAGER_DAEMON_H_
 #define APMANAGER_DAEMON_H_
 
-#include <base/cancelable_callback.h>
+#include <base/callback_forward.h>
 #include <chromeos/daemons/dbus_daemon.h>
 
 #include "apmanager/manager.h"
diff --git a/apmanager/manager.cc b/apmanager/manager.cc
index 2472777..959119d 100644
--- a/apmanager/manager.cc
+++ b/apmanager/manager.cc
@@ -54,11 +54,11 @@
 }
 
 void Manager::CreateService(
-    scoped_ptr<DBusMethodResponse<dbus::ObjectPath>> response,
+    std::unique_ptr<DBusMethodResponse<dbus::ObjectPath>> response,
     dbus::Message* message) {
   LOG(INFO) << "Manager::CreateService";
   scoped_refptr<AsyncEventSequencer> sequencer(new AsyncEventSequencer());
-  scoped_ptr<Service> service(new Service(this, service_identifier_));
+  std::unique_ptr<Service> service(new Service(this, service_identifier_));
 
   service->RegisterAsync(
       dbus_object_->GetObjectManager().get(), bus_, sequencer.get());
@@ -160,8 +160,8 @@
 }
 
 void Manager::OnServiceRegistered(
-    scoped_ptr<DBusMethodResponse<dbus::ObjectPath>> response,
-    scoped_ptr<Service> service,
+    std::unique_ptr<DBusMethodResponse<dbus::ObjectPath>> response,
+    std::unique_ptr<Service> service,
     bool success) {
   LOG(INFO) << "ServiceRegistered";
   // Success should always be true since we've said that failures are fatal.
@@ -181,7 +181,7 @@
   // Add service to the service list and return the service dbus path for the
   // CreateService call.
   dbus::ObjectPath service_path = service->dbus_path();
-  services_.push_back(std::unique_ptr<Service>(service.release()));
+  services_.push_back(std::move(service));
   response->Return(service_path);
 }
 
diff --git a/apmanager/manager.h b/apmanager/manager.h
index 0ee7766..9c5fb93 100644
--- a/apmanager/manager.h
+++ b/apmanager/manager.h
@@ -10,7 +10,6 @@
 #include <vector>
 
 #include <base/macros.h>
-#include <base/memory/scoped_ptr.h>
 #include <chromeos/dbus/dbus_service_watcher.h>
 
 #include "apmanager/dbus_adaptors/org.chromium.apmanager.Manager.h"
@@ -25,6 +24,9 @@
 class Manager : public org::chromium::apmanager::ManagerAdaptor,
                 public org::chromium::apmanager::ManagerInterface {
  public:
+  template<typename T>
+  using DBusMethodResponse = chromeos::dbus_utils::DBusMethodResponse<T>;
+
   Manager();
   virtual ~Manager();
 
@@ -33,8 +35,7 @@
   // This is an asynchronous call, response is invoked when Service and Config
   // dbus objects complete the DBus service registration.
   virtual void CreateService(
-      scoped_ptr<chromeos::dbus_utils::DBusMethodResponse<dbus::ObjectPath>>
-          response,
+      std::unique_ptr<DBusMethodResponse<dbus::ObjectPath>> response,
       dbus::Message* message);
   // Handles calls to org.chromium.apmanager.Manager.RemoveService().
   virtual bool RemoveService(chromeos::ErrorPtr* error,
@@ -75,9 +76,8 @@
   // A callback that will be called when the Service/Config D-Bus
   // objects/interfaces are exported successfully and ready to be used.
   void OnServiceRegistered(
-      scoped_ptr<chromeos::dbus_utils::DBusMethodResponse<dbus::ObjectPath>>
-          response,
-      scoped_ptr<Service> service,
+      std::unique_ptr<DBusMethodResponse<dbus::ObjectPath>> response,
+      std::unique_ptr<Service> service,
       bool success);
 
   // A callback that will be called when a Device D-Bus object/interface is
diff --git a/attestation/server/dbus_service.cc b/attestation/server/dbus_service.cc
index 7e70731..9f0141c 100644
--- a/attestation/server/dbus_service.cc
+++ b/attestation/server/dbus_service.cc
@@ -36,7 +36,7 @@
 }
 
 void DBusService::HandleCreateGoogleAttestedKey(
-    scoped_ptr<DBusMethodResponse<const CreateGoogleAttestedKeyReply&>>
+    std::unique_ptr<DBusMethodResponse<const CreateGoogleAttestedKeyReply&>>
         response,
     const CreateGoogleAttestedKeyRequest& request) {
   VLOG(1) << __func__;
diff --git a/attestation/server/dbus_service.h b/attestation/server/dbus_service.h
index e880c16..70e5c61 100644
--- a/attestation/server/dbus_service.h
+++ b/attestation/server/dbus_service.h
@@ -5,7 +5,8 @@
 #ifndef ATTESTATION_SERVER_DBUS_SERVICE_H_
 #define ATTESTATION_SERVER_DBUS_SERVICE_H_
 
-#include <base/memory/scoped_ptr.h>
+#include <memory>
+
 #include <chromeos/dbus/dbus_method_response.h>
 #include <chromeos/dbus/dbus_object.h>
 #include <dbus/bus.h>
@@ -39,7 +40,7 @@
 
   // Handles a CreateGoogleAttestedKey D-Bus call.
   void HandleCreateGoogleAttestedKey(
-      scoped_ptr<chromeos::dbus_utils::DBusMethodResponse<
+      std::unique_ptr<chromeos::dbus_utils::DBusMethodResponse<
           const CreateGoogleAttestedKeyReply&>> response,
       const CreateGoogleAttestedKeyRequest& request);
 
diff --git a/buffet/manager.cc b/buffet/manager.cc
index 33b1763..7b710f1 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -210,7 +210,7 @@
 }
 
 void Manager::SetCommandVisibility(
-    scoped_ptr<chromeos::dbus_utils::DBusMethodResponse<>> response,
+    std::unique_ptr<chromeos::dbus_utils::DBusMethodResponse<>> response,
     const std::vector<std::string>& in_names,
     const std::string& in_visibility) {
   CommandDefinition::Visibility visibility;
diff --git a/buffet/manager.h b/buffet/manager.h
index 3cf7021..cc3a114 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -37,7 +37,7 @@
 
 template<typename... Types>
 using DBusMethodResponse =
-    scoped_ptr<chromeos::dbus_utils::DBusMethodResponse<Types...>>;
+    std::unique_ptr<chromeos::dbus_utils::DBusMethodResponse<Types...>>;
 
 // The Manager is responsible for global state of Buffet.  It exposes
 // interfaces which affect the entire device such as device registration and
@@ -74,7 +74,7 @@
   void GetCommand(DBusMethodResponse<std::string> response,
                   const std::string& id) override;
   void SetCommandVisibility(
-      scoped_ptr<chromeos::dbus_utils::DBusMethodResponse<>> response,
+      std::unique_ptr<chromeos::dbus_utils::DBusMethodResponse<>> response,
       const std::vector<std::string>& in_names,
       const std::string& in_visibility) override;
   std::string TestMethod(const std::string& message) override;
diff --git a/chromeos-dbus-bindings/adaptor_generator.cc b/chromeos-dbus-bindings/adaptor_generator.cc
index 97c4a8b..44897a1 100644
--- a/chromeos-dbus-bindings/adaptor_generator.cc
+++ b/chromeos-dbus-bindings/adaptor_generator.cc
@@ -271,7 +271,8 @@
           out_types.push_back(param_type);
         }
         method_params.push_back(base::StringPrintf(
-            "scoped_ptr<chromeos::dbus_utils::DBusMethodResponse<%s>> response",
+            "std::unique_ptr<chromeos::dbus_utils::DBusMethodResponse<%s>> "
+            "response",
              chromeos::string_utils::Join(", ", out_types).c_str()));
         if (method.include_dbus_message)
           method_params.push_back("dbus::Message* message");
diff --git a/chromeos-dbus-bindings/adaptor_generator_unittest.cc b/chromeos-dbus-bindings/adaptor_generator_unittest.cc
index 772552d..6fe34bb 100644
--- a/chromeos-dbus-bindings/adaptor_generator_unittest.cc
+++ b/chromeos-dbus-bindings/adaptor_generator_unittest.cc
@@ -179,10 +179,10 @@
   virtual std::string Kaneda2(
       const std::string& in_iwata) const = 0;
   virtual void Tetsuo2(
-      scoped_ptr<chromeos::dbus_utils::DBusMethodResponse<int64_t>> response,
+      std::unique_ptr<chromeos::dbus_utils::DBusMethodResponse<int64_t>> response,
       int32_t in_1) = 0;
   virtual void Kei2(
-      scoped_ptr<chromeos::dbus_utils::DBusMethodResponse<bool>> response,
+      std::unique_ptr<chromeos::dbus_utils::DBusMethodResponse<bool>> response,
       dbus::Message* message) = 0;
 };
 
diff --git a/libchromeos/chromeos/daemons/dbus_daemon.h b/libchromeos/chromeos/daemons/dbus_daemon.h
index 0ba2f23..2f08dfa 100644
--- a/libchromeos/chromeos/daemons/dbus_daemon.h
+++ b/libchromeos/chromeos/daemons/dbus_daemon.h
@@ -9,7 +9,7 @@
 #include <string>
 
 #include <base/strings/string_piece.h>
-#include <base/memory/scoped_ptr.h>
+#include <base/memory/ref_counted.h>
 #include <chromeos/chromeos_export.h>
 #include <chromeos/daemons/daemon.h>
 #include <chromeos/dbus/exported_object_manager.h>
diff --git a/libchromeos/chromeos/dbus/dbus_method_response.cc b/libchromeos/chromeos/dbus/dbus_method_response.cc
index e376a0a..25d0b27 100644
--- a/libchromeos/chromeos/dbus/dbus_method_response.cc
+++ b/libchromeos/chromeos/dbus/dbus_method_response.cc
@@ -24,7 +24,7 @@
 void DBusMethodResponseBase::ReplyWithError(const chromeos::Error* error) {
   CheckCanSendResponse();
   auto response = GetDBusError(method_call_, error);
-  SendRawResponse(scoped_ptr<dbus::Response>(response.release()));
+  SendRawResponse(std::move(response));
 }
 
 void DBusMethodResponseBase::ReplyWithError(
@@ -38,19 +38,20 @@
 }
 
 void DBusMethodResponseBase::Abort() {
-  SendRawResponse(scoped_ptr<dbus::Response>());
+  SendRawResponse(std::unique_ptr<dbus::Response>());
 }
 
 void DBusMethodResponseBase::SendRawResponse(
-    scoped_ptr<dbus::Response> response) {
+    std::unique_ptr<dbus::Response> response) {
   CheckCanSendResponse();
   method_call_ = nullptr;  // Mark response as sent.
-  sender_.Run(response.Pass());
+  sender_.Run(scoped_ptr<dbus::Response>{response.release()});
 }
 
-scoped_ptr<dbus::Response>
+std::unique_ptr<dbus::Response>
 DBusMethodResponseBase::CreateCustomResponse() const {
-  return dbus::Response::FromMethodCall(method_call_);
+  return std::unique_ptr<dbus::Response>{
+      dbus::Response::FromMethodCall(method_call_).release()};
 }
 
 bool DBusMethodResponseBase::IsResponseSent() const {
diff --git a/libchromeos/chromeos/dbus/dbus_method_response.h b/libchromeos/chromeos/dbus/dbus_method_response.h
index 374abf5..b0c69b6 100644
--- a/libchromeos/chromeos/dbus/dbus_method_response.h
+++ b/libchromeos/chromeos/dbus/dbus_method_response.h
@@ -46,10 +46,10 @@
                       const std::string& error_message);
 
   // Sends a raw D-Bus response message.
-  void SendRawResponse(scoped_ptr<dbus::Response> response);
+  void SendRawResponse(std::unique_ptr<dbus::Response> response);
 
   // Creates a custom response object for the current method call.
-  scoped_ptr<dbus::Response> CreateCustomResponse() const;
+  std::unique_ptr<dbus::Response> CreateCustomResponse() const;
 
   // Checks if the response has been sent already.
   bool IsResponseSent() const;
@@ -63,7 +63,7 @@
  private:
   // A callback to be called to send the method call response message.
   ResponseSender sender_;
-  // |method_call_| is actually owned by |sender_| (it is embedded as scoped_ptr
+  // |method_call_| is actually owned by |sender_| (it is embedded as unique_ptr
   // in the bound parameter list in the Callback). We set it to nullptr after
   // the method call response has been sent to ensure we can't possibly try
   // to send a response again somehow.
@@ -88,7 +88,7 @@
     auto response = CreateCustomResponse();
     dbus::MessageWriter writer(response.get());
     DBusParamWriter::Append(&writer, return_values...);
-    SendRawResponse(response.Pass());
+    SendRawResponse(std::move(response));
   }
 };
 
diff --git a/libchromeos/chromeos/dbus/dbus_object.h b/libchromeos/chromeos/dbus/dbus_object.h
index 14d6c31..16fe59b 100644
--- a/libchromeos/chromeos/dbus/dbus_object.h
+++ b/libchromeos/chromeos/dbus/dbus_object.h
@@ -42,7 +42,7 @@
   chromeos::dbus_utils::ExportedProperty<int> prop2_;
   int Method1() { return 5; }
   bool Method2(chromeos::ErrorPtr* error, const std::string& message);
-  void Method3(scoped_ptr<DBusMethodResponse<int_32>> response,
+  void Method3(std::unique_ptr<DBusMethodResponse<int_32>> response,
                const std::string& message) {
     if (message.empty()) {
        response->ReplyWithError(chromeos::errors::dbus::kDomain,
@@ -104,9 +104,10 @@
 // The signature of the handler for AddSimpleMethodHandlerWithErrorAndMessage:
 //    bool(ErrorPtr* error, dbus::Message* msg, Args... args) [IN/OUT]
 // The signature of the handler for AddMethodHandler must be:
-//    void(scoped_ptr<DBusMethodResponse<T...>> response, Args... args) [IN]
+//    void(std::unique_ptr<DBusMethodResponse<T...>> response,
+//         Args... args) [IN]
 // The signature of the handler for AddMethodHandlerWithMessage must be:
-//    void(scoped_ptr<DBusMethodResponse<T...>> response,
+//    void(std::unique_ptr<DBusMethodResponse<T...>> response,
 //         dbus::Message* msg, Args... args) [IN]
 // There is also an AddRawMethodHandler() call that lets provide a custom
 // handler that can parse its own input parameter and construct a custom
@@ -242,7 +243,7 @@
   template<typename Response, typename... Args>
   inline void AddMethodHandler(
       const std::string& method_name,
-      const base::Callback<void(scoped_ptr<Response>, Args...)>& handler) {
+      const base::Callback<void(std::unique_ptr<Response>, Args...)>& handler) {
     static_assert(std::is_base_of<DBusMethodResponseBase, Response>::value,
                   "Response must be DBusMethodResponse<T...>");
     Handler<DBusInterfaceMethodHandler<Response, Args...>>::Add(
@@ -252,8 +253,9 @@
   // Register an async D-Bus method handler for |method_name| as a static
   // function.
   template<typename Response, typename... Args>
-  inline void AddMethodHandler(const std::string& method_name,
-                               void (*handler)(scoped_ptr<Response>, Args...)) {
+  inline void AddMethodHandler(
+      const std::string& method_name,
+      void (*handler)(std::unique_ptr<Response>, Args...)) {
     static_assert(std::is_base_of<DBusMethodResponseBase, Response>::value,
                   "Response must be DBusMethodResponse<T...>");
     Handler<DBusInterfaceMethodHandler<Response, Args...>>::Add(
@@ -269,7 +271,7 @@
   inline void AddMethodHandler(
       const std::string& method_name,
       Instance instance,
-      void(Class::*handler)(scoped_ptr<Response>, Args...)) {
+      void(Class::*handler)(std::unique_ptr<Response>, Args...)) {
     static_assert(std::is_base_of<DBusMethodResponseBase, Response>::value,
                   "Response must be DBusMethodResponse<T...>");
     Handler<DBusInterfaceMethodHandler<Response, Args...>>::Add(
@@ -284,7 +286,7 @@
   inline void AddMethodHandler(
       const std::string& method_name,
       Instance instance,
-      void(Class::*handler)(scoped_ptr<Response>, Args...) const) {
+      void(Class::*handler)(std::unique_ptr<Response>, Args...) const) {
     static_assert(std::is_base_of<DBusMethodResponseBase, Response>::value,
                   "Response must be DBusMethodResponse<T...>");
     Handler<DBusInterfaceMethodHandler<Response, Args...>>::Add(
@@ -295,7 +297,7 @@
   template<typename Response, typename... Args>
   inline void AddMethodHandlerWithMessage(
       const std::string& method_name,
-      const base::Callback<void(scoped_ptr<Response>, dbus::Message*,
+      const base::Callback<void(std::unique_ptr<Response>, dbus::Message*,
                                 Args...)>& handler) {
     static_assert(std::is_base_of<DBusMethodResponseBase, Response>::value,
                   "Response must be DBusMethodResponse<T...>");
@@ -308,7 +310,7 @@
   template<typename Response, typename... Args>
   inline void AddMethodHandlerWithMessage(
       const std::string& method_name,
-      void (*handler)(scoped_ptr<Response>, dbus::Message*, Args...)) {
+      void (*handler)(std::unique_ptr<Response>, dbus::Message*, Args...)) {
     static_assert(std::is_base_of<DBusMethodResponseBase, Response>::value,
                   "Response must be DBusMethodResponse<T...>");
     Handler<DBusInterfaceMethodHandlerWithMessage<Response, Args...>>::Add(
@@ -324,7 +326,8 @@
   inline void AddMethodHandlerWithMessage(
       const std::string& method_name,
       Instance instance,
-      void(Class::*handler)(scoped_ptr<Response>, dbus::Message*, Args...)) {
+      void(Class::*handler)(std::unique_ptr<Response>,
+                            dbus::Message*, Args...)) {
     static_assert(std::is_base_of<DBusMethodResponseBase, Response>::value,
                   "Response must be DBusMethodResponse<T...>");
     Handler<DBusInterfaceMethodHandlerWithMessage<Response, Args...>>::Add(
@@ -339,7 +342,7 @@
   inline void AddMethodHandlerWithMessage(
       const std::string& method_name,
       Instance instance,
-      void(Class::*handler)(scoped_ptr<Response>, dbus::Message*,
+      void(Class::*handler)(std::unique_ptr<Response>, dbus::Message*,
                             Args...) const) {
     static_assert(std::is_base_of<DBusMethodResponseBase, Response>::value,
                   "Response must be DBusMethodResponse<T...>");
diff --git a/libchromeos/chromeos/dbus/dbus_object_internal_impl.h b/libchromeos/chromeos/dbus/dbus_object_internal_impl.h
index 7ecd477..544dadb 100644
--- a/libchromeos/chromeos/dbus/dbus_object_internal_impl.h
+++ b/libchromeos/chromeos/dbus/dbus_object_internal_impl.h
@@ -19,7 +19,7 @@
 //    void handler(Args...);
 //    ReturnType handler(Args...);
 //    bool handler(ErrorPtr* error, Args...);
-//    void handler(scoped_ptr<DBusMethodResponse<T1, T2,...>>, Args...);
+//    void handler(std::unique_ptr<DBusMethodResponse<T1, T2,...>>, Args...);
 //
 // To make this all work, we craft a simple callback suitable for
 // DBusParamReader using a lambda in DBusInvoker::Invoke() and redirect the call
@@ -118,7 +118,7 @@
       auto response = method_response.CreateCustomResponse();
       dbus::MessageWriter writer(response.get());
       DBusParamWriter::AppendDBusOutParams(&writer, args...);
-      method_response.SendRawResponse(response.Pass());
+      method_response.SendRawResponse(std::move(response));
     };
 
     ErrorPtr param_reader_error;
@@ -167,7 +167,7 @@
         auto response = method_response.CreateCustomResponse();
         dbus::MessageWriter writer(response.get());
         DBusParamWriter::AppendDBusOutParams(&writer, args...);
-        method_response.SendRawResponse(response.Pass());
+        method_response.SendRawResponse(std::move(response));
       }
     };
 
@@ -219,7 +219,7 @@
         auto response = method_response.CreateCustomResponse();
         dbus::MessageWriter writer(response.get());
         DBusParamWriter::AppendDBusOutParams(&writer, args...);
-        method_response.SendRawResponse(response.Pass());
+        method_response.SendRawResponse(std::move(response));
       }
     };
 
@@ -244,14 +244,14 @@
 // the method call response (including a possible error response) using
 // the provided DBusMethodResponse object.
 // The signature of the callback handler is expected to be:
-//    void(scoped_ptr<DBusMethodResponse<RetTypes...>, Args...)
+//    void(std::unique_ptr<DBusMethodResponse<RetTypes...>, Args...)
 template<typename Response, typename... Args>
 class DBusInterfaceMethodHandler : public DBusInterfaceMethodHandlerInterface {
  public:
   // A constructor that takes a |handler| to be called when HandleMethod()
   // virtual function is invoked.
   explicit DBusInterfaceMethodHandler(
-      const base::Callback<void(scoped_ptr<Response>, Args...)>& handler)
+      const base::Callback<void(std::unique_ptr<Response>, Args...)>& handler)
       : handler_(handler) {}
 
   // This method forwards the call to |handler_| after extracting the required
@@ -260,8 +260,8 @@
   void HandleMethod(dbus::MethodCall* method_call,
                     ResponseSender sender) override {
     auto invoke_callback = [this, method_call, &sender](const Args&... args) {
-      scoped_ptr<Response> response(new Response(method_call, sender));
-      handler_.Run(response.Pass(), args...);
+      std::unique_ptr<Response> response(new Response(method_call, sender));
+      handler_.Run(std::move(response), args...);
     };
 
     ErrorPtr param_reader_error;
@@ -276,7 +276,7 @@
 
  private:
   // C++ callback to be called when a D-Bus method is dispatched.
-  base::Callback<void(scoped_ptr<Response>, Args...)> handler_;
+  base::Callback<void(std::unique_ptr<Response>, Args...)> handler_;
 
   DISALLOW_COPY_AND_ASSIGN(DBusInterfaceMethodHandler);
 };
@@ -288,7 +288,8 @@
 // type |Args...| and send the method call response (including a possible error
 // response) using the provided DBusMethodResponse object.
 // The signature of the callback handler is expected to be:
-//    void(scoped_ptr<DBusMethodResponse<RetTypes...>, dbus::Message*, Args...);
+//    void(std::unique_ptr<DBusMethodResponse<RetTypes...>, dbus::Message*,
+//         Args...);
 template<typename Response, typename... Args>
 class DBusInterfaceMethodHandlerWithMessage
     : public DBusInterfaceMethodHandlerInterface {
@@ -296,7 +297,7 @@
   // A constructor that takes a |handler| to be called when HandleMethod()
   // virtual function is invoked.
   explicit DBusInterfaceMethodHandlerWithMessage(
-      const base::Callback<void(scoped_ptr<Response>, dbus::Message*,
+      const base::Callback<void(std::unique_ptr<Response>, dbus::Message*,
                                 Args...)>& handler)
       : handler_(handler) {}
 
@@ -306,8 +307,8 @@
   void HandleMethod(dbus::MethodCall* method_call,
                     ResponseSender sender) override {
     auto invoke_callback = [this, method_call, &sender](const Args&... args) {
-      scoped_ptr<Response> response(new Response(method_call, sender));
-      handler_.Run(response.Pass(), method_call, args...);
+      std::unique_ptr<Response> response(new Response(method_call, sender));
+      handler_.Run(std::move(response), method_call, args...);
     };
 
     ErrorPtr param_reader_error;
@@ -322,7 +323,8 @@
 
  private:
   // C++ callback to be called when a D-Bus method is dispatched.
-  base::Callback<void(scoped_ptr<Response>, dbus::Message*, Args...)> handler_;
+  base::Callback<void(std::unique_ptr<Response>,
+                      dbus::Message*, Args...)> handler_;
 
   DISALLOW_COPY_AND_ASSIGN(DBusInterfaceMethodHandlerWithMessage);
 };
diff --git a/libchromeos/chromeos/dbus/dbus_object_test_helpers.h b/libchromeos/chromeos/dbus/dbus_object_test_helpers.h
index c9349d8..a8307cd 100644
--- a/libchromeos/chromeos/dbus/dbus_object_test_helpers.h
+++ b/libchromeos/chromeos/dbus/dbus_object_test_helpers.h
@@ -91,17 +91,18 @@
   static RetType Call(
       ErrorPtr* error,
       Class* instance,
-      void(Class::*method)(scoped_ptr<DBusMethodResponse<RetType>>, Params...),
+      void(Class::*method)(std::unique_ptr<DBusMethodResponse<RetType>>,
+                           Params...),
       Args... args) {
     ResponseHolder response_holder;
     dbus::MethodCall method_call("test.interface", "TestMethod");
     method_call.SetSerial(123);
-    scoped_ptr<DBusMethodResponse<RetType>> method_response{
+    std::unique_ptr<DBusMethodResponse<RetType>> method_response{
       new DBusMethodResponse<RetType>(
         &method_call, base::Bind(&ResponseHolder::ReceiveResponse,
                                  response_holder.AsWeakPtr()))
     };
-    (instance->*method)(method_response.Pass(), args...);
+    (instance->*method)(std::move(method_response), args...);
     CHECK(response_holder.response_.get())
         << "No response received. Asynchronous methods are not supported.";
     RetType ret_val;
@@ -118,17 +119,17 @@
   static void Call(
       ErrorPtr* error,
       Class* instance,
-      void(Class::*method)(scoped_ptr<DBusMethodResponse<>>, Params...),
+      void(Class::*method)(std::unique_ptr<DBusMethodResponse<>>, Params...),
       Args... args) {
     ResponseHolder response_holder;
     dbus::MethodCall method_call("test.interface", "TestMethod");
     method_call.SetSerial(123);
-    scoped_ptr<DBusMethodResponse<>> method_response{
+    std::unique_ptr<DBusMethodResponse<>> method_response{
       new DBusMethodResponse<>(&method_call,
                                base::Bind(&ResponseHolder::ReceiveResponse,
                                           response_holder.AsWeakPtr()))
     };
-    (instance->*method)(method_response.Pass(), args...);
+    (instance->*method)(std::move(method_response), args...);
     CHECK(response_holder.response_.get())
         << "No response received. Asynchronous methods are not supported.";
     ExtractMethodCallResults(response_holder.response_.get(), error);
diff --git a/libchromeos/chromeos/dbus/dbus_object_unittest.cc b/libchromeos/chromeos/dbus/dbus_object_unittest.cc
index d39d956..87a79e8 100644
--- a/libchromeos/chromeos/dbus/dbus_object_unittest.cc
+++ b/libchromeos/chromeos/dbus/dbus_object_unittest.cc
@@ -46,7 +46,8 @@
 struct Calc {
   int Add(int x, int y) { return x + y; }
   int Negate(int x) { return -x; }
-  void Positive(scoped_ptr<DBusMethodResponse<double>> response, double x) {
+  void Positive(std::unique_ptr<DBusMethodResponse<double>> response,
+                double x) {
     if (x >= 0.0) {
       response->Return(x);
       return;
@@ -82,8 +83,9 @@
   return true;
 }
 
-void TestWithMessageAsync(scoped_ptr<DBusMethodResponse<std::string>> response,
-                         dbus::Message* message) {
+void TestWithMessageAsync(
+    std::unique_ptr<DBusMethodResponse<std::string>> response,
+    dbus::Message* message) {
   response->Return(message->GetSender());
 }
 
diff --git a/libchromeos/chromeos/dbus/dbus_signal_handler_unittest.cc b/libchromeos/chromeos/dbus/dbus_signal_handler_unittest.cc
index 08172ea..88d5559 100644
--- a/libchromeos/chromeos/dbus/dbus_signal_handler_unittest.cc
+++ b/libchromeos/chromeos/dbus/dbus_signal_handler_unittest.cc
@@ -6,7 +6,6 @@
 
 #include <string>
 
-#include <base/memory/scoped_ptr.h>
 #include <chromeos/bind_lambda.h>
 #include <chromeos/dbus/dbus_param_writer.h>
 #include <dbus/mock_bus.h>
diff --git a/libchromeos/chromeos/dbus/exported_object_manager_unittest.cc b/libchromeos/chromeos/dbus/exported_object_manager_unittest.cc
index 9ae3b20..3df1466 100644
--- a/libchromeos/chromeos/dbus/exported_object_manager_unittest.cc
+++ b/libchromeos/chromeos/dbus/exported_object_manager_unittest.cc
@@ -131,9 +131,8 @@
 
   scoped_refptr<dbus::MockBus> bus_;
   scoped_refptr<dbus::MockExportedObject> mock_exported_object_;
-  scoped_ptr<ExportedObjectManager> om_;
+  std::unique_ptr<ExportedObjectManager> om_;
   ExportedPropertySet::PropertyWriter property_writer_;
-  scoped_ptr<dbus::Response> last_response_;
 };
 
 TEST_F(ExportedObjectManagerTest, ClaimInterfaceSendsSignals) {
diff --git a/libchromeos/chromeos/dbus/exported_property_set_unittest.cc b/libchromeos/chromeos/dbus/exported_property_set_unittest.cc
index 5ecd08b..ff38c37 100644
--- a/libchromeos/chromeos/dbus/exported_property_set_unittest.cc
+++ b/libchromeos/chromeos/dbus/exported_property_set_unittest.cc
@@ -162,10 +162,10 @@
     return testing::CallMethod(p_->dbus_object_, &method_call);
   }
 
-  scoped_ptr<dbus::Response> last_response_;
+  std::unique_ptr<dbus::Response> last_response_;
   scoped_refptr<dbus::MockBus> bus_;
   scoped_refptr<dbus::MockExportedObject> mock_exported_object_;
-  scoped_ptr<Properties> p_;
+  std::unique_ptr<Properties> p_;
 };
 
 template<typename T>