| Index: net/ssl/channel_id_service.cc
 | 
| diff --git a/net/ssl/channel_id_service.cc b/net/ssl/channel_id_service.cc
 | 
| index 7cae014a2f09c547b2d8f1f33aa2bce7509399e1..163a56b2977c8f99f0a6cdbe1822aad450dfda9d 100644
 | 
| --- a/net/ssl/channel_id_service.cc
 | 
| +++ b/net/ssl/channel_id_service.cc
 | 
| @@ -6,6 +6,7 @@
 | 
|  
 | 
|  #include <algorithm>
 | 
|  #include <limits>
 | 
| +#include <memory>
 | 
|  #include <utility>
 | 
|  
 | 
|  #include "base/atomic_sequence_num.h"
 | 
| @@ -17,7 +18,6 @@
 | 
|  #include "base/logging.h"
 | 
|  #include "base/macros.h"
 | 
|  #include "base/memory/ref_counted.h"
 | 
| -#include "base/memory/scoped_ptr.h"
 | 
|  #include "base/metrics/histogram_macros.h"
 | 
|  #include "base/rand_util.h"
 | 
|  #include "base/single_thread_task_runner.h"
 | 
| @@ -86,14 +86,14 @@ void RecordGetChannelIDTime(base::TimeDelta request_time) {
 | 
|  // Otherwise, returns NULL, and |*error| will be set to a net error code.
 | 
|  // |serial_number| is passed in because base::RandInt cannot be called from an
 | 
|  // unjoined thread, due to relying on a non-leaked LazyInstance
 | 
| -scoped_ptr<ChannelIDStore::ChannelID> GenerateChannelID(
 | 
| +std::unique_ptr<ChannelIDStore::ChannelID> GenerateChannelID(
 | 
|      const std::string& server_identifier,
 | 
|      int* error) {
 | 
| -  scoped_ptr<ChannelIDStore::ChannelID> result;
 | 
| +  std::unique_ptr<ChannelIDStore::ChannelID> result;
 | 
|  
 | 
|    base::TimeTicks start = base::TimeTicks::Now();
 | 
|    base::Time creation_time = base::Time::Now();
 | 
| -  scoped_ptr<crypto::ECPrivateKey> key(crypto::ECPrivateKey::Create());
 | 
| +  std::unique_ptr<crypto::ECPrivateKey> key(crypto::ECPrivateKey::Create());
 | 
|  
 | 
|    if (!key) {
 | 
|      DLOG(ERROR) << "Unable to create channel ID key pair";
 | 
| @@ -119,10 +119,9 @@ scoped_ptr<ChannelIDStore::ChannelID> GenerateChannelID(
 | 
|  // itself once Start() is called.
 | 
|  class ChannelIDServiceWorker {
 | 
|   public:
 | 
| -  typedef base::Callback<void(
 | 
| -      const std::string&,
 | 
| -      int,
 | 
| -      scoped_ptr<ChannelIDStore::ChannelID>)> WorkerDoneCallback;
 | 
| +  typedef base::Callback<
 | 
| +      void(const std::string&, int, std::unique_ptr<ChannelIDStore::ChannelID>)>
 | 
| +      WorkerDoneCallback;
 | 
|  
 | 
|    ChannelIDServiceWorker(const std::string& server_identifier,
 | 
|                           const WorkerDoneCallback& callback)
 | 
| @@ -145,7 +144,7 @@ class ChannelIDServiceWorker {
 | 
|    void Run() {
 | 
|      // Runs on a worker thread.
 | 
|      int error = ERR_FAILED;
 | 
| -    scoped_ptr<ChannelIDStore::ChannelID> channel_id =
 | 
| +    std::unique_ptr<ChannelIDStore::ChannelID> channel_id =
 | 
|          GenerateChannelID(server_identifier_, &error);
 | 
|  #if !defined(USE_OPENSSL)
 | 
|      // Detach the thread from NSPR.
 | 
| @@ -186,7 +185,7 @@ class ChannelIDServiceJob {
 | 
|      requests_.push_back(request);
 | 
|    }
 | 
|  
 | 
| -  void HandleResult(int error, scoped_ptr<crypto::ECPrivateKey> key) {
 | 
| +  void HandleResult(int error, std::unique_ptr<crypto::ECPrivateKey> key) {
 | 
|      PostAll(error, std::move(key));
 | 
|    }
 | 
|  
 | 
| @@ -199,13 +198,13 @@ class ChannelIDServiceJob {
 | 
|    }
 | 
|  
 | 
|   private:
 | 
| -  void PostAll(int error, scoped_ptr<crypto::ECPrivateKey> key) {
 | 
| +  void PostAll(int error, std::unique_ptr<crypto::ECPrivateKey> key) {
 | 
|      std::vector<ChannelIDService::Request*> requests;
 | 
|      requests_.swap(requests);
 | 
|  
 | 
|      for (std::vector<ChannelIDService::Request*>::iterator i = requests.begin();
 | 
|           i != requests.end(); i++) {
 | 
| -      scoped_ptr<crypto::ECPrivateKey> key_copy;
 | 
| +      std::unique_ptr<crypto::ECPrivateKey> key_copy;
 | 
|        if (key)
 | 
|          key_copy.reset(key->Copy());
 | 
|        (*i)->Post(error, std::move(key_copy));
 | 
| @@ -240,7 +239,7 @@ void ChannelIDService::Request::RequestStarted(
 | 
|      ChannelIDService* service,
 | 
|      base::TimeTicks request_start,
 | 
|      const CompletionCallback& callback,
 | 
| -    scoped_ptr<crypto::ECPrivateKey>* key,
 | 
| +    std::unique_ptr<crypto::ECPrivateKey>* key,
 | 
|      ChannelIDServiceJob* job) {
 | 
|    DCHECK(service_ == NULL);
 | 
|    service_ = service;
 | 
| @@ -250,8 +249,9 @@ void ChannelIDService::Request::RequestStarted(
 | 
|    job_ = job;
 | 
|  }
 | 
|  
 | 
| -void ChannelIDService::Request::Post(int error,
 | 
| -                                     scoped_ptr<crypto::ECPrivateKey> key) {
 | 
| +void ChannelIDService::Request::Post(
 | 
| +    int error,
 | 
| +    std::unique_ptr<crypto::ECPrivateKey> key) {
 | 
|    switch (error) {
 | 
|      case OK: {
 | 
|        base::TimeDelta request_time = base::TimeTicks::Now() - request_start_;
 | 
| @@ -314,7 +314,7 @@ std::string ChannelIDService::GetDomainForHost(const std::string& host) {
 | 
|  
 | 
|  int ChannelIDService::GetOrCreateChannelID(
 | 
|      const std::string& host,
 | 
| -    scoped_ptr<crypto::ECPrivateKey>* key,
 | 
| +    std::unique_ptr<crypto::ECPrivateKey>* key,
 | 
|      const CompletionCallback& callback,
 | 
|      Request* out_req) {
 | 
|    DVLOG(1) << __FUNCTION__ << " " << host;
 | 
| @@ -369,7 +369,7 @@ int ChannelIDService::GetOrCreateChannelID(
 | 
|  }
 | 
|  
 | 
|  int ChannelIDService::GetChannelID(const std::string& host,
 | 
| -                                   scoped_ptr<crypto::ECPrivateKey>* key,
 | 
| +                                   std::unique_ptr<crypto::ECPrivateKey>* key,
 | 
|                                     const CompletionCallback& callback,
 | 
|                                     Request* out_req) {
 | 
|    DVLOG(1) << __FUNCTION__ << " " << host;
 | 
| @@ -403,7 +403,7 @@ int ChannelIDService::GetChannelID(const std::string& host,
 | 
|  
 | 
|  void ChannelIDService::GotChannelID(int err,
 | 
|                                      const std::string& server_identifier,
 | 
| -                                    scoped_ptr<crypto::ECPrivateKey> key) {
 | 
| +                                    std::unique_ptr<crypto::ECPrivateKey> key) {
 | 
|    DCHECK(CalledOnValidThread());
 | 
|  
 | 
|    std::map<std::string, ChannelIDServiceJob*>::iterator j;
 | 
| @@ -448,10 +448,10 @@ ChannelIDStore* ChannelIDService::GetChannelIDStore() {
 | 
|  void ChannelIDService::GeneratedChannelID(
 | 
|      const std::string& server_identifier,
 | 
|      int error,
 | 
| -    scoped_ptr<ChannelIDStore::ChannelID> channel_id) {
 | 
| +    std::unique_ptr<ChannelIDStore::ChannelID> channel_id) {
 | 
|    DCHECK(CalledOnValidThread());
 | 
|  
 | 
| -  scoped_ptr<crypto::ECPrivateKey> key;
 | 
| +  std::unique_ptr<crypto::ECPrivateKey> key;
 | 
|    if (error == OK) {
 | 
|      key.reset(channel_id->key()->Copy());
 | 
|      channel_id_store_->SetChannelID(std::move(channel_id));
 | 
| @@ -461,7 +461,7 @@ void ChannelIDService::GeneratedChannelID(
 | 
|  
 | 
|  void ChannelIDService::HandleResult(int error,
 | 
|                                      const std::string& server_identifier,
 | 
| -                                    scoped_ptr<crypto::ECPrivateKey> key) {
 | 
| +                                    std::unique_ptr<crypto::ECPrivateKey> key) {
 | 
|    DCHECK(CalledOnValidThread());
 | 
|  
 | 
|    std::map<std::string, ChannelIDServiceJob*>::iterator j;
 | 
| @@ -480,7 +480,7 @@ void ChannelIDService::HandleResult(int error,
 | 
|  bool ChannelIDService::JoinToInFlightRequest(
 | 
|      const base::TimeTicks& request_start,
 | 
|      const std::string& domain,
 | 
| -    scoped_ptr<crypto::ECPrivateKey>* key,
 | 
| +    std::unique_ptr<crypto::ECPrivateKey>* key,
 | 
|      bool create_if_missing,
 | 
|      const CompletionCallback& callback,
 | 
|      Request* out_req) {
 | 
| @@ -501,12 +501,13 @@ bool ChannelIDService::JoinToInFlightRequest(
 | 
|    return false;
 | 
|  }
 | 
|  
 | 
| -int ChannelIDService::LookupChannelID(const base::TimeTicks& request_start,
 | 
| -                                      const std::string& domain,
 | 
| -                                      scoped_ptr<crypto::ECPrivateKey>* key,
 | 
| -                                      bool create_if_missing,
 | 
| -                                      const CompletionCallback& callback,
 | 
| -                                      Request* out_req) {
 | 
| +int ChannelIDService::LookupChannelID(
 | 
| +    const base::TimeTicks& request_start,
 | 
| +    const std::string& domain,
 | 
| +    std::unique_ptr<crypto::ECPrivateKey>* key,
 | 
| +    bool create_if_missing,
 | 
| +    const CompletionCallback& callback,
 | 
| +    Request* out_req) {
 | 
|    // Check if a channel ID key already exists for this domain.
 | 
|    int err = channel_id_store_->GetChannelID(
 | 
|        domain, key, base::Bind(&ChannelIDService::GotChannelID,
 | 
| 
 |